Android RecognizerIntent 语音识别 returns RESULT_CLIENT_ERROR

Android RecognizerIntent Speech recognition returns RESULT_CLIENT_ERROR

我在 Android TV 应用程序中使用 Leanback 搜索片段实现了搜索视图。 它适用于键盘输入文本。但是语音搜索returns RESULT_CLIENT_ERROR99%。但是,文本出现在屏幕上的编辑文本中,但不会 return 在 onActivityResult 中。一旦进入 bluemoon,我就会得到 RESULT_OK 的意图,其中包含正确的数据。 设备:Nexus 播放器

即使是默认搜索,大多数项目的工作方式也相同。我几乎没有通过语音获得结果。 (我的意思是在 Nexus 播放器的主屏幕中搜索)

我尝试使用 SearchEditText 的引用来获取文本,但运气不好。

代码如下:

  setSpeechRecognitionCallback(new SpeechRecognitionCallback() {
      @Override
      public void recognizeSpeech() {
          try {
              startActivityForResult(getRecognizerIntent(), REQUEST_SPEECH);
          } catch (final ActivityNotFoundException e) {
              Log.d("ActivityNotFoundException",e.toString());
          }
      }
  });

onActivityResult

@Override
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
    switch (requestCode) {
        case REQUEST_SPEECH:
            switch (resultCode) {
                case Activity.RESULT_OK:
                    setSearchQuery(data, true);
                    break;
                case RecognizerIntent.RESULT_CLIENT_ERROR:
                    Log.d("RESULT_CLIENT_ERROR", String.valueOf(requestCode));
                    break;
            }
    }
}

我如何让它 100% 发挥作用 我可以更改提供的意图吗?

这是 Nexus 播放器的问题,因为即使是 Nexus 播放器的默认搜索操作也是如此。

然而,同一段代码在 Sony Bravia 和其他 Android 电视上 100% 正常工作。