【问题标题】:startVoiceRecognition with bluetooth headset is not working使用蓝牙耳机的 startVoiceRecognition 无法正常工作
【发布时间】:2014-09-04 13:53:31
【问题描述】:

我需要使用带有语音识别功能的蓝牙耳机,这在 S3、S4 和三星 Grand 等设备上几乎可以正常工作。但是,当我在 Nexus 7 上尝试相同时,我得到了

BluetoothHeadsetServiceJni : Failed to start voice recognition, status: 6

当我调用startVoiceRecognition() 方法时出错。我正在使用来自SO page 的代码。

仅在某些设备中出现此问题的可能原因是什么?有没有办法解决这个问题?

【问题讨论】:

    标签: android android-bluetooth bluetooth-sco


    【解决方案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 未被调用,此后它几乎在所有设备中都可以检查
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      • 2016-01-05
      • 2013-06-24
      • 2018-06-30
      • 2017-11-25
      相关资源
      最近更新 更多