Android Can';无法从蓝牙耳机接收广播

Android Can';无法从蓝牙耳机接收广播,android,bluetooth,headset,Android,Bluetooth,Headset,我是蓝牙设备开发新手。我目前的项目需要一个使用蓝牙耳机在线聊天的功能。当用户想要开始通话时,应按一下通话按钮(蓝牙耳机上的一个按钮)。 但当我按下耳机上的按钮时,我创建的BroadcastReceiver对象似乎无法接收任何广播。以下是我初始化BroadcastReceiver的方式: IntentFilter filter = new IntentFilter(BluetoothHeadset.ACTION_VENDOR_SPECIFIC_HEADSET_EVENT); BroadcastRe

我是蓝牙设备开发新手。我目前的项目需要一个使用蓝牙耳机在线聊天的功能。当用户想要开始通话时,应按一下通话按钮(蓝牙耳机上的一个按钮)。 但当我按下耳机上的按钮时,我创建的BroadcastReceiver对象似乎无法接收任何广播。以下是我初始化BroadcastReceiver的方式:

IntentFilter filter = new IntentFilter(BluetoothHeadset.ACTION_VENDOR_SPECIFIC_HEADSET_EVENT);
BroadcastReceiver event_Receiver = new BroadcastReceiver(){String cmd=intent.getStringExtra(BluetoothHeadset.EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD);};
registerReceiver(event_Receiver, filter);
但是,可以通过使用AudioManager.ACTION\u SCO\u AUDIO\u state\u UPDATED设置intentfilter来接收连接状态广播

我读过几篇文章,其中提到持续动作、特定于供应商的耳机事件在Jelly Bean中不起作用。那个么你们知道从蓝牙耳机捕捉按键事件的其他方法吗

更新:我从source.google.com上阅读了手机应用程序的源代码。在com.android.phone.BluetoothHandsfree包中,我发现了这个方法:broadcastVendorSpecificEventIntent()。因此,该系统确实在广播命令意图。但在我的应用程序中,我仍然无法接收这种广播,我猜测系统接收器已经使用了BLuetoothHandsfree对象发送的广播。有人知道如何设置比系统接收器更高的优先级来检索此类广播吗


顺便说一下,我通过设置Integer.Max_值在IntentFilter类中尝试了setPriority()方法,但是,它不起作用

我必须为供应商添加类别


这就是我如何让“行动”\u供应商\u特定的\u耳机\u活动正常工作的原因。

虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则只有链接的答案可能会无效。基本的部分是为供应商添加类别,但为代码添加类别<代码>过滤器.addCategory(蓝牙耳机.供应商\特定\耳机\事件\公司\ ID \类别+“+”+蓝牙分配号码.PLANTRONICS)