更改默认短信应用意图在 android 10 上不起作用

Posted

技术标签:

【中文标题】更改默认短信应用意图在 android 10 上不起作用【英文标题】:Change default sms app intent not working on android 10 【发布时间】:2021-01-16 00:19:41 【问题描述】:

您好,我正在努力将我的应用程序兼容性更新为 android 10 和 11,以前我将我的应用程序设为默认短信应用程序并从我的应用程序接收和发送新短信,更改默认短信应用程序的意图在 android 10 以下工作正常但它没有显示更改在 android 10 上弹出的默认短信应用

 val intent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
                            intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName)
                            startActivity(intent)

如果有人知道 android 10 发生了什么变化,请提出建议,因为我在 developer.android.com 上找不到任何变化,提前致谢

【问题讨论】:

【参考方案1】:

仔细阅读文档后,我发现他们已经使用 roleManager 更新了直接意图,

 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) 
                                val roleManager = getSystemService(RoleManager::class.java)
                                val roleRequestIntent = roleManager.createRequestRoleIntent(RoleManager.ROLE_SMS)
                                startActivityForResult(roleRequestIntent, 12)
                             else 
                                val intent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
                                intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName)
                                startActivity(intent)
                            

这是更新所有必需访问权限的新方法 以供参考 :- https://developer.android.com/reference/android/app/role/RoleManager

【讨论】:

以上是关于更改默认短信应用意图在 android 10 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Assetlinks.json 中的应用链接意图过滤器在 Android 上不起作用

Android:打开短信意图

Android学习笔记06

Android:电子邮件和短信的不同意图

在 Android 4.4.2 上更改 SMS 应用默认值

更改意图时 Android Studio 崩溃