Я хотел бы управлять своим приложением с помощью клавиш гарнитуры (громкость +, средняя клавиша, громкость -).
У меня нет проблем с обнаружением мультимедийных клавиш:
- 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
Как я могу получить эти события с моим сервисом?Или есть какая-нибудь полезная альтернатива для обнаружения таких щелчков гарнитуры?