私は、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);
これらすべて、recognizer rec は rec.startListening(intent); で起動するときに完全に無視します。
一方、 startActivityForResult(intent, 1000, intent.getExtras()); を使用すると、認識を開始するために、RecognitionLister からのコードは完全に無視されます。
自分の RecognitionListener とインテント エクストラで認識を開始するにはどうすればよいですか?
レイナ
=============
PS: startActivityForResult には ReconitionListener のコードを使用する理由がまったくないことに気付きました....しかし、なぜ startListening がエクストラを無視する必要があるのか まだ混乱しています。