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

禁用googlequicksearchbox时自定义键盘SpeechRecognizer使用方案

问题说明

需要禁用系统应用com.google.android.googlequicksearchbox(谷歌快速搜索框),但执行禁用操作后,自定义键盘的语音识别功能无法正常使用,需要确认可行的解决方法,或是可在应用内手动引入依赖、无需在设备上启用该应用的实现方案。

已在清单文件中为android.speech.RecognitionService添加了query标签,尝试通过如下代码初始化SpeechRecognizer:

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if(ContextCompat.checkSelfPermission(this,Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED){
        checkPermission();
    }
    //////////
    printListofSupportedLanguages();
    /////////
    editText = findViewById(R.id.text);
    micButton = findViewById(R.id.button);
    final Intent speechRecognizerIntent;
    speechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    try {
        speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this,
                ComponentName.unflattenFromString("android.speech.RecognitionService/com.google.android.voicesearch.serviceapi.GoogleRecognitionService")));

        Log.d(TAG,"SpeechRecognizer Created");
             speechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
        speechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
    } catch (Exception e) {
        e.printStackTrace();
        Log.e(TAG,"Exception Rec:"+e.getMessage());
    }
解决方案
  • 根因说明:代码中显式指定的识别服务com.google.android.voicesearch.serviceapi.GoogleRecognitionService是com.google.android.googlequicksearchbox包内置的组件。Android系统会对被禁用应用的所有组件做拦截,即使添加了queries标签也无法绑定启动该服务,普通应用没有系统权限无法绕过这个限制。
  • 方案1:替换为设备上其他可用的系统语音识别服务
    不要硬编码谷歌快速搜索框内置的识别服务组件名,先通过代码遍历查询设备上所有已启用的RecognitionService实现,选择非com.google.android.googlequicksearchbox提供的可用服务即可,比如部分厂商系统自带的语音识别服务、其他已安装语音类应用对外提供的识别服务。如果设备上不存在其他可用识别服务,该方案无法生效。
  • 方案2:应用内集成独立语音识别能力,完全不依赖系统SpeechRecognizer
    这是不需要启用com.google.android.googlequicksearchbox的最稳妥实现,完全不依赖系统预装应用组件:
    • 离线场景可集成端侧开源语音识别库,将识别模型直接打包到APK内,不需要调用系统服务
    • 在线场景可自行实现录音、音频流编码上传、识别结果解析逻辑,对接语音识别服务端接口即可
  • 代码问题修正:贴出的初始化代码存在语法错误,ComponentName.unflattenFromString调用行末尾多写了一个右括号,会直接导致编译失败,需要先删除多余括号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 05:03:26