Перейти к содержанию
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 пользователей онлайн

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