我想用耳机键(音量+、中间键、音量-)控制我的应用程序。
我检测媒体密钥没有问题:
- 播放/暂停,点击中间触发
- 下一个/上一个,由音量按钮长按触发
我确实在检测(最好是拦截)其他所有内容时遇到了问题。我对音量键特别感兴趣。
!!使用onKeyDown或收听MEDIA_BUTTON或收听音量变化(例如通过 AudioService)的解决方案适用于手机音量键,但不适用于蓝牙音量键!
更多信息:(就像信息一样)在 onKeyDown 上的活动中,我看不到耳机按键(它只会拾取手机音量摇杆上的点击)。
我无法从音量变化中推断出点击次数,因为如果设备处于最大/最小音量,则不会触发。此外,如果我尝试使用耳机将音量设置为高于最大音量,则不会显示音量对话框,就像使用电话音量按钮一样。
在调试器中,vol+ on max volume 上唯一发生的事情是调试模式下 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
我如何通过我的服务获得这些事件?或者是否有任何有用的替代方法来检测此类耳机点击?