随着最近的谷歌应用更新(6.14.20.21.arm),谷歌语音识别器停止工作。如果您在识别器启动后几秒钟内做出响应,onResult
则调用侦听器。但是如果我们不响应,并且没有回调被调用。onError
用于调用的回调SpeechRecognizer.ERROR_SPEECH_TIMEOUT
有没有人有这个问题?
使用RecognizerIntent.ACTION_RECOGNIZE_SPEECH
Intent 的同样问题。onActivityResult
如果没有响应,则不会调用。它曾经超时,现在停止工作。
这就是我开始活动的方式:
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL , RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE , this.getPackageName());
startActivityForResult(intent , VOICE_REQUEST_CODE);
和onActivityResult
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == VOICE_REQUEST_CODE && resultCode == RESULT_OK) {
ArrayList<String> stringArrayListExtra = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if(stringArrayListExtra != null && !stringArrayListExtra.isEmpty()) {
voiceBuilder.append(stringArrayListExtra.toString());
voiceBuilder.append("\n\n");
}
}
}