Вопрос по android – Отключить кнопку «Домой» в Android ICS (4.0)

8

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

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

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

Код для отключения кнопки «Домой» в 3.2:

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

и, под onCreate:

<code>KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
</code>

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

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

Спасибо за любую помощь или направление.

Адам

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

Ваш Ответ

2   ответа
0

крайней мере ... используя решение & quot; hotveryspicy & quot; И, если вы хотите ответить на кнопку HOME, внедрите домашний экран.

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

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

Надеюсь, что это имеет смысл ..

Мне также нужен такой же сценарий, но мы можем выйти из приложения, используя eclipse DDMS, а также долгое нажатие кнопки «домой» включает диспетчер задач. Есть ли способ, которым мы можем отключить долгое нажатие кнопки домой?
Когда мы столкнулись с проблемой, касающейся диспетчера задач, мне пришлось использовать очень сомнительную логику. Сначала я создал класс BaseActivity, который расширил все мои действия. Я создал & quot; navigateFromScreen & quot; логическое значение, которое я установил бы в true каждый раз, когда я переключал действия в приложении, и устанавливал в false OnCreate BaseActivity. OnPause Я бы проверил, если переменная navigateFromScreen == false, и если это так, я бы перезапустил последнее загруженное действие (удерживаемое другой глобальной переменной). Это работало, чтобы предотвратить переключение на любое другое приложение, но это было трудно настроить. adamacdo
пользователь все еще может отменить выбор этого приложения
Ваше объяснение имело смысл, и оно сработало отлично. От моего основного приложения до домашнего угонщика было только небольшое мерцание ... но этого следует ожидать, переключая приложения. После запуска я переместил приложение угона назад, что помогло уменьшить мерцание. adamacdo

Похожие вопросы