java - 更改默认短信应用 Intent 不适用于 Android 10

标签 java android kotlin sms android-10.0

您好,我正在努力更新我的应用程序与 android 10 和 11 的兼容性,之前我将我的应用程序设置为默认短信应用程序并从我的应用程序接收和发送新短信,更改默认短信应用程序的 Intent 在 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 上找到任何变化,在此先感谢

最佳答案

仔细阅读文档后,我知道他们已经使用 RoleManager 更新了直接 Intent ,

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

关于java - 更改默认短信应用 Intent 不适用于 Android 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64135681/

相关文章:

java - 从字符串中提取电话号码

java - ActionBar 向上按钮过渡效果

android - 购买应用时 Google Play 未经许可的响应

java - 如何分别获取名词、动词、形容词同义词集?

java - jackson 忽略外部库中父类(super class)的所有属性

android - 将 project.json 与 xamarin.android 一起使用

java - 将十六进制转换为小端

Kotlin 1.3.11 打破了空安全性?

string - Kotlin - 如何正确连接字符串

android - 从 Android 设备卸载应用程序时如何使用 Firebase 以编程方式检测?