如果没有立即说话,JellyBean中的RecognitionListener会冻结

srf*_*srf 9 android speech-recognition android-4.2-jelly-bean

我正在开发的基于语音识别的应用程序适用于从API 8(Android 2.2)开始的所有Android版本.

但是在Nexus S 4G(Android 4.1.1)上,RecognitionListener将暂停大约1分钟,然后通过其onError()回调发出ERROR_SERVER .

如果在1-2秒内(在onReadyForSpeech上发出哔哔声)说话,它将按预期正常运行.

在JellyBean中有什么变化可以解释这种行为?

更重要的是,是否有一种方法可以使其在旧版本的Android中表现得像?(即继续听,如果没有在默认的10秒内说出,则发出ERROR_SPEECH_TIMEOUT )

srf*_*srf 1

我最终使用了@scriptocalypse建议的解决方案

谢谢@scriptocalypse!

(我还没有机会尝试@HoanNguyen建议的解决方案,因为它实现的服务超出了我的小应用程序的范围,但它看起来很有希望。也谢谢@HoanNguyen。)