问题描述
我正在使用一个 SMS备份应用程序,该应用程序将所有 SIM SMS存储在一个xml文件中,然后我们可以还原回来,然后问题是当我想要还原时需要我的应用程序为默认SMS应用程序,我已经尝试了所有解决方案,但对我没有用...我使用了此方法,但都徒劳无益,例如: 意图意图=新意图(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,myPackageName); startActivity(intent);
解决方法
我尝试了以下代码,它在 android 10 和 11 上运行良好
确保按照以下要求实施所有要求:http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html
并将以下内容放入您的 Mainactivity 类
public void perm2(){
Context mContext3 = getApplicationContext();
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) {
RoleManager roleManager = null;
roleManager = mContext3.getSystemService(RoleManager.class);
Intent roleRequestIntent = roleManager.createRequestRoleIntent(
RoleManager.ROLE_SMS);
startActivityForResult(roleRequestIntent,MESSAGE_CODE);
} else {
Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,mContext3.getPackageName());
startActivityForResult(intent,MESSAGE_CODE);
}
}