如何解决如何在PeriodicWorkRequest中使用SpeechRecognizer?
我正在尝试每15分钟语音识别一次,因为我正在使用java.util.concurrent.ExecutionException: java.lang.RuntimeException: SpeechRecognizer should be used only from the application's main thread
,但收到错误消息说gatsby clean
。我该怎么做呢? PeriodicWorkRequest是错误的方法吗?
解决方法
如果您尝试使用Android Framework API进行语音识别,则该功能仅在前台活动中可用。根据错误,您似乎是trying to listen from background which isn't possible starting with Android 9。
为了提高电池寿命,在最新版本的Android中,后台服务变得越来越严格。以前,您可能可以使用Foreground Service来维护您的流程,但是使用Doze Mode之类的功能,Google会进一步限制用例。即使您遵循recommendations for exemption,并且您的应用已指示用户在“设置”中手动将您的应用从“省电模式”中排除,设备制造商仍添加了自己的省电功能,例如https://dontkillmyapp.com/需要了解Android的当前状态。
您可能看到的任何后台语音激活或收听应用程序很可能是使用较旧版本的Android或设备制造商提供的自定义软件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。