我试图围绕SpeechRecognizer进行思考。我有一个SpeechRecognizer和我自己的识别监听器:
rec = SpeechRecognizer.createSpeechRecognizer(this);
rec.setRecognitionListener(new RecognitionListener() {
//Lots of overrides that work perfectly fine
});
当我使用rec.startListening(intent)启动它时,它可以正常工作; 但我的意图恰好有一些额外的东西:
intent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);
intent.putExtra(RecognizerIntent.EXTRA_RESULTS_PENDINGINTENT, true);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "de-DE");
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 3);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
所有这些,识别器rec在使用rec.startListening(intent)启动时完全忽略;
另一方面,当我使用startActivityForResult(intent,1000,intent.getExtras());为了开始识别,来自RecognitionLister的代码完全被忽略了。
如何使用自己的RecognitionListener和intent-extras开始识别?
Layna
=============
PS:我现在已经意识到startActivityForResult绝对没有理由使用ReconitionListener的代码....但我仍然感到困惑,为什么startListening应该忽略额外的内容。