Android RecognizerIntent语音识别返回RESULT_CLIENT_ERROR

时间:2015-10-13 06:37:17

标签: android android-tv

我已在Android TV App中使用Leanback Search Fragment实现了搜索视图。 它适用于键盘输入文本。但语音搜索返回RESULT_CLIENT_ERROR 99%。但是,文本显示在屏幕上的编辑文本中,但不会返回onActivityResult。一旦进入蓝色月亮,我会在意图中获得具有正确数据的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%工作?我可以在提供的意图中改变什么?

1 个答案:

答案 0 :(得分:0)

这是Nexus播放器的一个问题,因为即使Nexus播放器的默认搜索操作行为也一样。

然而,同样的代码在索尼Bravia和其他Android电视上可以100%正常使用。