我已在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%工作?我可以在提供的意图中改变什么?
答案 0 :(得分:0)
这是Nexus播放器的一个问题,因为即使Nexus播放器的默认搜索操作行为也一样。
然而,同样的代码在索尼Bravia和其他Android电视上可以100%正常使用。