2

我想用耳机键(音量+、中间键、音量-)控制我的应用程序。

我检测媒体密钥没有问题:

  • 播放/暂停,点击中间触发
  • 下一个/上一个,由音量按钮长按触发

我确实在检测(最好是拦截)其他所有内容时遇到了问题。我对音量键特别感兴趣。

!!使用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

我如何通过我的服务获得这些事件?或者是否有任何有用的替代方法来检测此类耳机点击?

4

0 回答 0