Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android不广播蓝牙操作\u音频\u状态\u一致更改_Android_Bluetooth - Fatal编程技术网

Android不广播蓝牙操作\u音频\u状态\u一致更改

Android不广播蓝牙操作\u音频\u状态\u一致更改,android,bluetooth,Android,Bluetooth,我正在尝试让我的Android VoIP应用程序与蓝牙耳机配合使用 我已经根据耳机配置文件上的文档设置了所有内容(获取默认的蓝牙适配器,查询耳机配置文件代理并设置配置文件侦听器)。我还设置了一个广播接收器来监听蓝牙事件。当我看到一个设备已连接(BluetoothHeadset.ACTION\u CONNECTION\u STATE\u CHANGED通过状态BluetoothHeadset.STATE\u connected)广播时,我在新连接的设备上调用startVoiceRecognitio

我正在尝试让我的Android VoIP应用程序与蓝牙耳机配合使用

我已经根据耳机配置文件上的文档设置了所有内容(获取默认的蓝牙适配器,查询耳机配置文件代理并设置配置文件侦听器)。我还设置了一个广播接收器来监听蓝牙事件。当我看到一个设备已连接(
BluetoothHeadset.ACTION\u CONNECTION\u STATE\u CHANGED
通过状态
BluetoothHeadset.STATE\u connected
)广播时,我在新连接的设备上调用
startVoiceRecognition()

稍后,当我希望设置呼叫时,我调用AudioManager bluetoothSCO函数:

if(shouldTurnBluetoothOn){
   am.setBluetoothScoOn(true);
   am.startBluetoothSco();
}else{
    am.stopBluetoothSco();
    am.setBluetoothScoOn(false);
}
我已确保我的音频模块已初始化为与bluetooth SCO兼容:也就是说,我的
AudioTrack
已使用
AudioManager.STREAM\u VOICE\u CALL
以8KHz进行初始化,而
AudioRecord
使用
android.media.MediaRecorder.AudioSource.MIC
并以8KHz进行采样


现在的问题是,这并不是始终如一的

根据Android文档中的
startVoiceRecognition()

用户可以收听操作\音频\状态\更改。如果这个函数 返回true,此意图将在“额外_状态”设置为的情况下广播 状态\音频\正在连接

尽管对startVoiceRecognition()的调用总是返回true,但我并不总是看到这种广播。当我看到广播时,蓝牙似乎能工作


怎么回事?我已经在Nexus5和棒棒糖上运行了我的应用程序,也在安卓4.4上运行了S3

在意图过滤器中使用以下操作:

BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED
BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED
BluetoothDevice.ACTION_ACL_CONNECTED
BluetoothDevice.ACTION_ACL_DISCONNECTED 
并添加类别
intentFilter.addCategory(蓝牙耳机.供应商\特定耳机\事件\公司\ ID \类别+“+”+蓝牙指定号码.PLANTRONICS)