Как предотвратить использование кнопки HOME в Android и IOS?

Я работаю над приложением, в котором пользователь должен иметь возможность использовать только одно приложение, он не должен иметь возможность переключать приложение, используя кнопку HOME, приложение. должен быть закрыт только тогда, когда пользователь нажимает кнопку закрытия.. Мне удалось переопределить кнопку возврата, не знаю, как отключить кнопку HOME.

5 ответов

Это невозможно отключить кнопку "Домой" в Android, когда приложение находится в фоновом режиме, потому что некоторые приложения всегда могут отключить кнопку "Домой", если это возможно. Поэтому разработчик не может отключить кнопку "Домой", когда приложение работает в фоновом режиме. Но в Activity вы можете перехватить кнопку home.

В Activity вы можете отключить ключ Home в Android. Работает только до Android 3.x.

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

Это вообще невозможно при использовании кода на iOS.

Одно использование кнопки ДОМОЙ для чрезвычайной ситуации.

Любой дом, квартира... у всех есть экстренный метод, например, аварийная дверь (выход), разбитие стекла (топор, летучая мышь...); это спасает жизнь. Аналогично, на телефоне Android/iOS кнопка HOME спасает жизни пользователей (ну, вроде как). Если кнопка HOME не работает, телефон считается мертвым, и для его обновления требуется немедленная перезагрузка. Кнопка была разработана для такой цели, чтобы разработчики не могли запутаться со всем.

Лично я как бы благодарен команде разработчиков Android/iOS и тому, кто думал об этой ситуации на кнопке HOME. Это спасает мое развитие много раз. Я предлагаю вам подумать и обдумать наихудший случай, если кнопка HOME не работает в вашем приложении; например, приложение не работает как обычно, HOME отключен, так как вернуться на экран HOME, как переключиться на другие приложения?...

Код, предоставленный TGMCians, не работает на 4.0+.

В случае, если вы работаете над платформой Android, такой как сборка ПЗУ, сборка фреймворков для производителей,... grep исходного кода с KEY_HOME и проследите внутреннюю глубину, чтобы найти, как это работает, и отключите ее.

На самом деле, можно заблокировать кнопку домой, используя следующие методы:

  1. использование дыр в безопасности, по крайней мере, на старых версиях Android. это делается на некоторых приложениях шкафчика. Я думаю, что некоторые все еще работают даже на более новых версиях Android, но это риск, и он может быть глючит на некоторых устройствах. я знаю, что "widgetLocker" и "Picture Password Lockscreen" пробуют эти дыры. Я не уверен, насколько хорошо они работают сейчас с ними. лучшее решение стать экраном блокировки #2 .

  2. сделайте ваше приложение средством запуска, которое будет обрабатывать кнопку "домой" (пользователь должен подтвердить это, конечно). Примером такого приложения является "MagicLocker", и фактически любое приложение запуска...

  3. используя рутированное устройство. Я понятия не имею, как это сделать, но я думаю, что это очень возможно.

  4. это не совсем блокирующий метод, но вы можете разместить приложение в полноэкранном режиме и наверху (используя тип макета окна TYPE_SYSTEM_ALERT), поэтому кнопка home не будет захвачена, но пользователь не увидит, что происходит за вашим приложением. недостатком является то, что никакая другая кнопка не будет захвачена вашим приложением, поскольку на самом деле она не находится на переднем плане.

TGMCians прав.

Android не позволяет деятельности и ее сервисам работать на вашем устройстве в одиночку.

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

Лично я думаю, что опасно переопределять кнопки "домой" и "назад" вместе, если активность зависает в какой-то момент, вы не можете выйти из приложения, пока не перезагрузите телефон.

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

Другие вопросы по тегам