Android-如何使我的应用程序成为默认SMS应用程序?

问题描述

我正在使用一个 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);
        }

    }