Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как отловить нажатие на кнопку "Домой" на android


Коляндер

Вопрос

Опубликовано

Здравствуйте.

DELPHI XE8, android 4.4

Как отловить нажатие на кнопки "Домой" и "Открытые приложения"? (может неправильно их называю, снизу три кнопки)

В событие FormKeyUp формы почему-то не попадают.

Кнопку "Назад" именно там отловил.

 

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

 

Основная задача, чтобы нельзя было закрыть приложение.

Рекомендуемые сообщения

  • 0
Опубликовано (изменено)

для этого нужно менять глубже

в нормальном состоянии система всегда позволяет закрыть программу / перейти на домашний экран

и нужно зарегистрировать свою программу как лаунчер и  еще удалить лаунчер стандартный и в защищенных настройках ОС тоже покрутить правильные ручки

 

есть мануалы для программ на яве

пример

можно попробовать их реализовать тут

Изменено пользователем krapotkin
  • 0
Опубликовано (изменено)
Вроде прекрасно все отлавливает
procedure TForm_Main.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
 if Key = vkHardwareBack
  then ShowMessage('Назад') 
else
 if Key = vkMenu
  then ShowMessage('Меню');
end;
 
 
А вот "Открытые приложения" наврятли получиться отловить
Изменено пользователем zairkz
  • 0
Опубликовано

Тоже столкнулся с необходимостью запретить пользователю нажимать на кнопку Домой. Нашел достаточно простое решение (для себя), заставить приложение быть Лаунчером, при этом доступна шторка и кнопка включения. Но основные фишки работают: после перезагрузки автоматически стартует моя программа, она не висит в списке задач, ее нельзя выгрузить, не работает кнопка Домой.

Суть в изменении манифеста. В файле AndroidManifest.template.xml находим строки

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> 

И добавляем

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
  <category android:name="android.intent.category.HOME" />
  <category android:name="android.intent.category.DEFAULT" />
</intent-filter> 

Пересобираем приложение, запускаем. На 6-ом Андроиде при нажатии на кнопку Домой система предложит выбрать Лаунчер, выбираем нашу программу и нажимаем Всегда. Чтобы изменить, через шторку входим в настройки - выбор системного интерфейса. На 8-ом Андроиде также через настройки принудительно выставляем лаунчер на нашу программу.

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...