我想使用耳机按键(音量+,中键,音量-)来控制我的应用。
我在检测媒体密钥时没有问题:
我确实在检测(最好是拦截)其他所有内容时遇到问题。我对音量键特别感兴趣。
!! 使用 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
如何通过服务获得这些事件?还是有任何有用的替代方法来检测此类耳机的喀哒声?