You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Wear OS应用语音识别报错:未选中语音识别服务

解决Wear OS语音识别报错E/SpeechRecognizer: no selected voice recognition service的方案
  • 先确认设备可用的语音识别服务
    先通过代码排查设备上是否存在可调用的语音识别服务,添加这段代码打印所有可用服务:

    PackageManager pm = getPackageManager();
    List<ResolveInfo> services = pm.queryIntentServices(
        new Intent(RecognitionService.SERVICE_INTERFACE), 0);
    for (ResolveInfo info : services) {
        Log.d("SpeechServices", "可用服务包名: " + info.serviceInfo.packageName);
    }
    

    如果日志为空,说明系统未注册可用服务;如果出现com.google.android.googlequicksearchbox这类Google相关包,说明服务存在但应用未正确绑定。

  • 强制指定Google语音识别服务
    Wear OS上Google Assistant对应的语音识别服务包通常是com.google.android.googlequicksearchbox,初始化SpeechRecognizer时直接指定该服务,跳过系统默认选择逻辑:

    ComponentName component = new ComponentName(
        "com.google.android.googlequicksearchbox",
        "com.google.android.voicesearch.serviceapi.GoogleRecognitionService");
    SpeechRecognizer recognizer = SpeechRecognizer.createSpeechRecognizer(this, component);
    
  • 检查Wear OS系统语音设置
    Wear OS的语音设置不在应用内,需在系统设置中配置:

    1. 手表端打开设置
    2. 找到语音输入或Google Assistant设置
    3. 确认默认语音助手设为Google Assistant,且相关权限已开启
      另外,部分设备需要通过手机端Wear OS配套应用同步语音配置,建议同步后重启手表再测试。
  • 补全权限配置
    除了RECORD_AUDIO,Wear OS还需声明BIND_RECOGNITION_SERVICE权限,清单文件中添加:

    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.BIND_RECOGNITION_SERVICE" />
    

    同时确保已通过代码动态申请RECORD_AUDIO运行时权限,Wear OS权限申请流程和手机端一致。

  • 模拟器适配处理
    API 30的Wear OS模拟器默认可能缺少完整的Google语音服务,建议:

    1. 切换到带Google APIs的模拟器镜像(确保包含Google Play服务)
    2. 手动在模拟器中安装Google Assistant应用,重启后再测试

内容的提问来源于stack exchange,提问作者Rice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:12:07