使用蓝牙耳机的 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 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

android 手机使用蓝牙耳机支持调节音量吗

苹果5蓝牙耳机怎么用

苹果蓝牙耳机亮盒子亮蓝光是啥意思?

使用蓝牙耳机的 startVoiceRecognition 无法正常工作

如何使用IVT BlueSoleil 如何在电脑上使用蓝牙耳机

怎样在Linux中使用蓝牙