Перейти к содержанию
  • Регистрация
  • 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-ом Андроиде также через настройки принудительно выставляем лаунчер на нашу программу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Да, забыл указать, форме присваиваем FullScreen = true, чтобы стрыть шторку и системные кнопки, если они экранные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Гость
Ответить на вопрос...

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

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

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

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

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


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

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

×
×
  • Создать...