使用蓝牙耳机的 startVoiceRecognition 无法正常工作
Posted
技术标签:
【中文标题】使用蓝牙耳机的 startVoiceRecognition 无法正常工作【英文标题】:startVoiceRecognition with bluetooth headset is not working 【发布时间】:2014-09-04 13:53:31 【问题描述】:我需要使用带有语音识别功能的蓝牙耳机,这在 S3、S4 和三星 Grand 等设备上几乎可以正常工作。但是,当我在 Nexus 7 上尝试相同时,我得到了
BluetoothHeadsetServiceJni : Failed to start voice recognition, status: 6
当我调用startVoiceRecognition()
方法时出错。我正在使用来自SO page 的代码。
仅在某些设备中出现此问题的可能原因是什么?有没有办法解决这个问题?
【问题讨论】:
【参考方案1】:使用鞋鼠建议,修改链接中的启动方法,看看是否可行。
public boolean start()
if (!mIsStarted)
mIsStarted = true;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB || "Nexus 7".equals(Build.MODEL)
mIsStarted = startBluetooth();
else
mIsStarted = startBluetooth11();
return mIsStarted;
【讨论】:
您可以使用Build.MODEL
来确定目标型号。也就是说,if 块中的最后一个条件可以替换为"Nexus 7".equals(Build.MODEL)
如果我使用nexus 7,可能这个问题会出现在其他设备上,所以我该如何管理,我不想要任何解决方法我只想知道这个问题背后的原因,因为解决方法我们还可以添加计时器完成 onScoAudioConnected 方法,它可以在我检查的所有设备上运行【参考方案2】:
我已经检查过 Narayan 提到的,我发现 BluetoothHeadset.STATE_AUDIO_CONNECTED 确实在 nexus 7 以及其他一些中兴通讯设备中触发,可能是制造故障或该设备不支持呼叫,您尝试通过 call_mode 进行通信, 我认为只有解决方法可以解决这个问题
【讨论】:
【参考方案3】:Nexus 7 不支持 VoiceRecognition,因为 Nexus 7 不支持包含 VoiceRecognition 的蓝牙 HFP(免提配置文件)。 您可以在https://www.bluetooth.org/tpg/listings.cfm找到设备蓝牙信息。
【讨论】:
它在我的 nexus 7 上工作,但通过变通方法不正常 真的吗?您是否正在使用 AudioManager.startBluetoothSco() 手动启动蓝牙 sco? 是的,我正在调用 onScoAudioConnected();在 mCountDown11 完成时调用方法,我还添加了一个检查以识别 BluetoothHeadset.STATE_AUDIO_CONNECTED 未被调用,此后它几乎在所有设备中都可以检查以上是关于使用蓝牙耳机的 startVoiceRecognition 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
使用蓝牙耳机的 startVoiceRecognition 无法正常工作