3

私は、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 がエクストラを無視する必要があるのか​​ まだ混乱しています。

4

0 に答える 0