2012-04-09 4 views
8

Я делаю проприетарное приложение для компании, которая никогда не выпустит ее на Android Market (или Play Store, я думаю, сейчас) в Ice Cream Sandwich (Android 4.0).Отключить главную кнопку в Android ICS (4.0)

Мне нужно отключить Дом, чтобы пользователи не могли злонамеренно удалить программное обеспечение или удалить данные, которые приложение захватывает. Эта последняя версия первая, которая будет написана в 4.0, предыдущие версии были написаны в 2.2 и 3.2.

Для отключения кнопки «Дом» в 2.2 я связал приложение как домашнюю замену, поэтому кнопка просто открыла приложение, но я больше не могу использовать этот метод, поскольку это несколько мешает нам делать обновления в приложении . (мы не хотим, чтобы дать пользователю возможность повторного выбора Home по умолчанию, так как это приведет к удалению данных

код у меня есть для disableing кнопки Home в 3.2:

@Override 
public void onAttachedToWindow() { 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
    super.onAttachedToWindow(); 
} 

и, under onCreate:

KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); 
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
lock.disableKeyguard(); 

Но когда я запускаю тот же код, который работал на моем планшете 3.2, он не работает на моем планшете 4.0.

Мне было интересно, есть ли новый API или метод, который имеет 4.0, который достигнет того же эффекта, что и в моей реализации 3.2.

Спасибо за любую помощь или руководство.

Адам

+0

Ваше приложение ведет себя как вредоносные программы в том, что он берет на себя управление устройством от пользователя. Android 4.0+ предназначен для предотвращения этого. – Dubs

ответ

6

Как насчет обходной ..

Написать второе приложение, которое реализует домашний экран, когда кнопка домашнего экрана нажимается это приложение выйдет на первый план. Из этого приложения вам необходимо нажать основное приложение обратно на передний план. Единственный улов в том, что ваше приложение на главном экране никогда не нуждается в обновлении, но вы должны иметь возможность бесплатно обновлять основное приложение без вкладки с просьбой установить главную пусковую установку.

Надежда, что имеет смысл ..

+0

Ваше объяснение имело смысл, и оно отлично работало. Было лишь небольшое мерцание от моего основного приложения к домашнему угонщику ... но этого можно ожидать, переключая приложения. С самого начала я переместил приложение захвата на спину, что помогло уменьшить некоторые из мерцаний. – adamacdo

+0

пользователь все еще может отменить выбор этого приложения. –

+0

Мне также нужен такой же сценарий, но мы можем выйти из приложения с помощью DDL eclipse, а также нажатие кнопки home home позволяет диспетчер задач. есть способ, которым мы можем отключить длительное нажатие кнопки «домой»? – DAS

0

Нет .... Вы не можете домой кнопку для Android4.0 переопределить по крайней мере .. используя решение «hotveryspicy» И, если вы хотите, чтобы ответить на кнопку HOME, реализовать экран.

+0

Я не могу считать приложение в качестве домашнего экрана, потому что, когда мы обновляем приложение, у пользователя будет возможность выбрать фондовый Home как средство запуска, что позволит удалить конфиденциальные данные ... что является номером один Мне нужно избегать. – adamacdo