2013-01-02 23 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结果的建议。