如何在Android上覆盖(或至少收听)蓝牙耳机音量按钮?

时间:2018-12-04 08:33:25

标签: android bluetooth keypress headset avrcp

我想使用耳机按键(音量+,中键,音量-)来控制我的应用。

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

  • 播放/暂停,通过单击中键触发
  • 下一个/上一个,由长按音量键触发

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

!! 使用 onKeyDown 或收听 MEDIA_BUTTON 收听音量变化的解决方案(例如通过AudioService)使用电话音量键,但不能使用蓝牙音量键 !!

更多信息: (仅作为信息)在onKeyDown上的活动中,我没有看到耳机的按键操作(它只会引起电话音量摇杆的点击)。

我无法从音量变化中推断出点击次数,因为如果设备的最大/最小音量没有触发。另外,如果我尝试使用耳机将音量设置为高于最大音量,则不会出现音量对话框,就像使用电话音量按钮一样。

在调试器中,vol +上最大音量发生的唯一事情是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

如何通过服务获得这些事件?还是有任何有用的替代方法来检测此类耳机的喀哒声?

0 个答案:

没有答案