Блок Home Button в сэндвич с мороженым и желе

Я занимаюсь разработкой экрана блокировки, где хочу отключить кнопку "Домой" в сэндвиче с мороженым и в бобе желе. Я могу заблокировать его, используя следующие методы в Android 2.2, 2.3

  @Override
public void onAttachedToWindow() {
    // TODO Auto-generate method stub
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();
}

тоже пробовал это

   getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

Здесь я также не получаю информацию о событии через onPause Метод или onKeyDown

Но эти методы не работают для меня в ICS,Jelly Bean, если есть какой-либо метод, который может заменить его, то дайте мне знать

3 ответа

Решение

После ICS, то есть Android 4+, переопределение HomeButton было удалено из соображений безопасности, чтобы позволить пользователю выйти в случае, если приложение окажется вредоносным ПО.

Плюс, это не очень хорошая практика, чтобы не позволить пользователю уйти от приложения. Но, поскольку вы создаете приложение для экрана блокировки, вы можете объявить действие как средство запуска, чтобы при нажатии кнопки HomeButton оно просто перезапускало ваше приложение и оставалось там само (пользователи не заметят ничего, кроме легкого мерцания). на экране).

РЕДАКТИРОВАТЬ #1: Вот еще один обходной путь, более подходящий для ваших нужд.

РЕДАКТИРОВАТЬ № 2: Просто сталкивался с этим. Не проверял это. Но выглядит многообещающе. Не уверен, что это сработает, но вы можете попробовать.

Есть несколько вещей, которые вы можете попробовать:

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

  • Прослушайте трансляцию BOOT_COMPLETED, чтобы начать свою деятельность - это защитит вас от пользователей, которые вынут батарею из устройства для его перезагрузки.

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

Сделайте это, и никто не сможет выйти из вашего приложения.

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

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