【发布时间】:2021-04-09 09:27:53
【问题描述】:
我有只备份和恢复短信的短信备份应用 所以当我恢复短信时,我需要设置默认按摩应用程序。然后在恢复后我不需要保持默认的按摩应用程序。
所以我的问题是如何删除我的应用默认为按摩应用。 也适用于老版本的belove Android Q。
代码-
fun saveSms(values: ContentValues) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val roleManager = getSystemService(RoleManager::class.java)
if (roleManager.isRoleAvailable(RoleManager.ROLE_SMS)) {
if (roleManager.isRoleHeld(RoleManager.ROLE_SMS)) {
contentResolver.insert(Telephony.Sms.CONTENT_URI, values)
} else {
val i = roleManager
.createRequestRoleIntent(RoleManager.ROLE_SMS)
smsRunnable = Runnable {
saveSms(values)
smsRunnable = null
}
startActivityForResult(i, 5444)
}
}
return
}
if (Telephony.Sms.getDefaultSmsPackage(this) != packageName) {
val intent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName)
smsRunnable = Runnable {
saveSms(values)
smsRunnable = null
}
startActivityForResult(intent, 5444)
} else {
contentResolver.insert(Telephony.Sms.CONTENT_URI, values)
}
}
【问题讨论】:
标签: android kotlin android-sms role-manager