Я разрабатываю приложение для Android, которое перехватывает нажатие аппаратных кнопок и делает вызовы REST для их давления. Кнопка, которую я должен перехватить, — это кнопка «Нажми и говори» (PTT), а не обычная кнопка, такая как кнопка питания или кнопка громкости.
Когда приложение запускается на переднем плане, я использую метод onKeyDown (int keyCode, событие KeyEvent). Кнопка PTT, как идентификатор, имеет номер 27, а затем внутри метода я написал следующие строки кода:
if (keyCode == 27) {// Я нажал кнопку PTT}
Все это прекрасно работает.
Но сейчас я отправляю приложение в фоновом режиме (функцией moveTaskToBack(true);), и когда я нажимаю кнопку PTT, я бы его перехватывал.
Я знаю о BroadcastReceiver, IntentFilter и Service, однако они позволяют перехватывать действия с ограниченным намерением (например, намерение.action.SCREEN_OFF или другие обычные действия), среди которых не удается найти давление кнопки PTT.
Есть ли способ перехватить кнопку PTT, когда приложение находится в фоновом режиме?
Спасибо
onKeyDown()
кажется, что они используютKEYCODE_CAMERA
, так что возможноACTION_CAMERA_BUTTON
будет работать. - person CommonsWare   schedule 25.08.2016