当某些设备上的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 (将#修改为@)