微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当某些设备上的receiverPermission = null 时,语音识别的可用语言崩溃

如何解决当某些设备上的receiverPermission = null 时,语音识别的可用语言崩溃

我尝试按照此示例从 Android 设备获取支持的语音识别语言列表 Available languages for speech recognition

长话短说,代码工作(不是在所有或大多数设备上)但在某些设备上崩溃并出现 NullPointerException 抱怨无法在 receiverPermission == null 上调用虚拟方法。奇怪的是,如果我将receiverPermission 更改为空字符串而不是null,它不会崩溃但也不会返回任何支持的语言。

文档 (developer.android.com) 说这个字段可以为空,但显然不是因为它使某些设备崩溃。 (例如在我的 Moto E Android 8.1 上崩溃,但在三星 S9+ Android 10 上运行良好)

String:字符串命名接收者必须持有的权限才能接收您的广播。如果为 null,则不需要许可。此值可能为空。

    val detailsIntent = RecognizerIntent.getVoiceDetailsIntent(this)
    val receiverPermission = null // this is the source of the problem
    this.sendOrderedbroadcast(detailsIntent,receiverPermission,LanguageDetailsChecker(),null,Activity.RESULT_OK,null)

任何解决此问题的指针或建议将不胜感激。 谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。