2013-01-02 21 views
8

我正在開發的基於語音識別的應用程序在API 8(Android 2.2)開始的所有版本的Android上運行良好。JellyBean中的RecognitionListener如果不立即說話,就會被凍結

不過在Nexus S 4G(安卓4.1.1),RecognitionListener只會停止約1分鐘,則發出通過其onError()回調的ERROR_SERVER。

如果在1-2秒內(onReadyForSpeech嗶嗶聲)說話,它的行爲將與預期相符。

果凍豆可以解釋這種行爲有什麼變化?

更重要的是,有沒有一種方法可以使其表現得像舊版Android? (即守聽,然後發出ERROR_SPEECH_TIMEOUT如果不是默認的一言一到10秒

+6

這個破解向後兼容性的SNAFU聽起來很熟悉......我最近遇到了一個類似的帖子,[沒有在視線中回答](http://stackoverflow.com/q/13670378/576267)。也許它與[this](http://stackoverflow.com/a/11839541/576267)有關?祝你好運! –

+1

是的,這個問題已經在Jellybean中引入。你應該留意鏈接的帖子,因爲它有100點的獎勵。 – scriptocalypse

+1

看到我的工作,包括靜音嘟嘟聲在http://stackoverflow.com/questions/14940657/android-speech-recognition-as-a-service-on-android-4-1-4-2/14950616#14950616 –

回答

1

我結束了使用建議的解決方案通過@scriptocalypse

謝謝@scriptocalypse!

(我還沒有嘗試通過@HoanNguyen建議的解決方案,因爲它實現了一個服務,這是超出了我的小應用程序的範圍的機會,但它看起來很有希望。謝謝@HoanNguyen了。)

-2

有一個similar post here,提供的只是再次聽取了關於接收ERROR_TIMEOUT_SPEECH結果的建議。