首页 > 解决方案 > 在蓝牙耳机启动语音识别会话期间阻止 Google 助理?

问题描述

我正在开发一个语音识别应用程序,该应用程序使用蓝牙免提配置文件(HFP 又名耳机配置文件)连接到自定义硬件。该应用程序用于通过利用 Android AudioRecord 类将 PCM 音频数据传递到基于云的语音识别服务器。如果应用程序启动 SCO 连接,此功能可以正常工作,但如果耳机硬件启动 SCO 连接,通过向手机发出 AT+BVRA HFP 命令,Google 助理总是劫持手机。因此,我的问题是如何阻止这种情况?有没有办法以编程方式告诉 Google Assistant 冷静?我尝试了很多不同的东西(AudioManager sco 管理、AudioRouting 首选连接、BluetoothHeadset 配置文件类、Java Reflection & View.setAssitBlocked(true) 等...),但他们似乎都无法阻止 Google Assistant 或重新捕获 SCO 连接。(似乎手机为谷歌助手的音频提要打开了 A2DP)。我希望这可以通过基于 Java 的解决方案实现......?

标签: audio-recordingandroid-bluetoothvoice-recognitiongoogle-assistant-sdkheadset

解决方案


正如另一个答案所指出的那样,可能发生的情况是 Android 正在广播ACTION_VOICE_COMMAND 意图,并且由于 Google Assistant 设置为接收它,因此它在连接上获得优先权。您的应用程序可以注册意图并查看它是否在接收它时获得优先权。


推荐阅读