2013-01-02 7 views
8

Aplikacja oparta na rozpoznawaniu mowy, nad którą pracuję, działa dobrze we wszystkich wersjach Androida, począwszy od API 8 (Android 2.2).RecognitionListener in JellyBean zawiesza się, jeśli nie jest od razu mówiony

Ale Nexus S 4G (Mobile 4.1.1) RecognitionListener po prostu zatrzymania przez około 1 minutę, a następnie wystawia ERROR_SERVER poprzez jego onError() zwrotnego.

Jeśli zostanie użyte w ciągu 1-2 sekund (z tego onReadyForSpeech bleep), będzie zachowywać się poprawnie zgodnie z oczekiwaniami.

Co zmieniło się w JellyBean, co mogłoby wyjaśnić to zachowanie?

Co jest ważniejsze, czy istnieje sposób na zachowanie go w starszych wersjach Androida? (tj zachować słuchania, a następnie wydać ERROR_SPEECH_TIMEOUT jeśli nie mówi się w 10 sekund domyślnie )

+6

Ten SNAFU łamania wstecznej kompatybilności brzmi znajomo ... Niedawno natknąłem się na podobny wpis, [bez odpowiedzi w zasięgu wzroku] (http://stackoverflow.com/q/13670378/576267). Może jest to związane z [this] (http://stackoverflow.com/a/11839541/576267)? Powodzenia! –

+1

Tak, ten problem został wprowadzony w Jellybean. Powinieneś obserwować połączony wpis, ponieważ ma on 100 punktów nagrody. – scriptocalypse

+1

Zobacz moją pracę, włączając w to wyciszanie sygnału dźwiękowego pod adresem http://stackoverflow.com/questions/14940657/android-speech-recognition-as-a-service-on-android-4-1-4-2/14950616#14950616 –

Odpowiedz

1

skończyło się przy użyciu rozwiązanie sugerowane przez @scriptocalypse

Dziękuję @scriptocalypse!

(ja nie miałem okazji wypróbować rozwiązanie sugerowane przez @HoanNguyen ponieważ realizuje usługę, która jest poza zakresem mojej malutkiej aplikacji, ale wygląda obiecująco. Dziękuję @HoanNguyen, too.)

-2

Jest similar post here który oferuje sugestię prostu słuchać znowu się na otrzymywanie wynik ERROR_TIMEOUT_SPEECH.

Powiązane problemy