RecognitionListener in JellyBean Freezes if not sp

2019-03-27 09:42发布

A speech-recognition based app I am working on works well on all versions of Android starting from API 8 (Android 2.2).

But on a Nexus S 4G (Android 4.1.1), RecognitionListener will simply halt for about 1 minute, then issue an ERROR_SERVER via its onError() callback.

If spoken to within 1-2 seconds (of that onReadyForSpeech bleep), it will behave properly as expected.

What changed in JellyBean that could explain this behavior?

More importantly, is there a way to make it behave like in the older versions of Android? (i.e. keep listening, then issue ERROR_SPEECH_TIMEOUT if not spoken to within the default 10 seconds)

2条回答
Deceive 欺骗
2楼-- · 2019-03-27 10:09

I ended up using the solution suggested by @scriptocalypse

Thank you @scriptocalypse!

(I haven't had the chance to try the solution suggested by @HoanNguyen because it implements a service which is beyond the scope of my tiny app, but it looks promising. Thank you @HoanNguyen, too.)

查看更多
走好不送
3楼-- · 2019-03-27 10:12

There is a similar post here that offers the suggestion of simply listening again up on receiving ERROR_TIMEOUT_SPEECH result.

查看更多
登录 后发表回答