gpt4 book ai didi

Android 10 默认短信应用对话框未显示

转载 作者:行者123 更新时间:2023-12-03 21:16:59 29 4
gpt4 key购买 nike

我已成功修改我的应用程序以用作默认短信应用程序。
问题在于应该提示用户将我的应用程序设置为默认值的对话框。
它似乎适用于旧版本,但不适用于 android 10 模拟器。

我的代码:

fun Activity.askToBeDefaultSMSApp() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
val intent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
intent.putExtra(
Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,
packageName
)
startActivityForResult(intent, DEFAULT_SMS_APP_PERMISSION_REQUEST)
}
}

我确实得到了 onActivityResult 响应,它说已授予权限,但是如果我打电话:
Telephony.Sms.getDefaultSmsPackage(this)

我仍然认为谷歌短信应用是默认的。

有什么问题?

最佳答案

对于 android 10,我们使用 RollManger

if (getDefaultSmsPackage(mContext) != null && !getDefaultSmsPackage(mContext).equals(mContext.getPackageName())) {
RoleManager roleManager = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
roleManager = mContext.getSystemService(RoleManager.class);

if (roleManager.isRoleAvailable(RoleManager.ROLE_SMS)) {
if (roleManager.isRoleHeld(RoleManager.ROLE_SMS)) {
Log.d("role", "role");
} else {
Intent roleRequestIntent = roleManager . createRequestRoleIntent (
RoleManager.ROLE_SMS);
((Activity) mContext).startActivityForResult(roleRequestIntent, MESSAGE_CODE);
}
}
} else {
Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(
Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,
mContext.getPackageName()
);
((Activity) mContext).startActivityForResult(intent, MESSAGE_CODE);
}
}

关于Android 10 默认短信应用对话框未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59554835/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com