Как переопределить (или хотя бы послушать) кнопки громкости bluetooth гарнитуры на андроиде? - PullRequest
0 голосов
/ 04 декабря 2018

Я хотел бы управлять своим приложением с помощью клавиш гарнитуры (громкость +, средняя клавиша, громкость -).

У меня нет проблем с обнаружением мультимедийных клавиш:

  • play /пауза, вызванная щелчком по центру
  • следующий / предыдущий, вызванная кнопками громкости длительным нажатием

У меня действительно есть проблема с обнаружением (и в идеале перехватом) всего остального.Меня особенно интересуют клавиши регулировки громкости.

!! Решения с onKeyDown или прослушиванием MEDIA_BUTTON или прослушиванием изменений громкости (например, через AudioService) работает с клавишами громкости телефона, но не с клавишами громкости Bluetooth !!

Подробнее: (так же, как информация) В активности на onKeyDown я не вижу гарнитурунажатие клавиш (щелчки поднимаются только на клавиатуре громкости телефона).

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

В отладчике единственное, что происходит при громкости + громкости - это сообщается о каком-либо действиииз avrcp в режиме отладки:

07:04:08.220 7106-7250/? I/BluetoothAvrcpServiceJni: btavrcp_volume_change_callback
07:04:08.220 7106-30330/? V/Avrcp: MSG_NATIVE_REQ_VOLUME_CHANGE: volume=127 ctype=13
07:04:08.281 5937-13180/? I/EDMNativeHelperService: isAVRCPProfileEnabled
07:04:08.285 7106-7250/? I/BluetoothAvrcpServiceJni: btavrcp_volume_change_callback
07:04:08.285 7106-30330/? V/Avrcp: MSG_NATIVE_REQ_VOLUME_CHANGE: volume=127 ctype=15

Как я могу получить эти события с моим сервисом?Или есть какая-нибудь полезная альтернатива для обнаружения таких щелчков гарнитуры?

...