Sms 安卓:点击按钮将短信应用设置为默认

Sms 安卓:点击按钮将短信应用设置为默认,sms,default,Sms,Default,参考。我在menifest中写了这段代码,这对我来说很好。。。但我想将我的应用程序设置为包括kitkat在内的所有android版本的默认点击事件。有人能帮我吗 正如在kitkat中通过以下意图所做的: if (! Telephony.Sms.getDefaultSmsPackage(this).equals(myPackageName) ) { // App is not default. // Show the "not currently

参考。我在menifest中写了这段代码,这对我来说很好。。。但我想将我的应用程序设置为包括kitkat在内的所有android版本的默认点击事件。有人能帮我吗

正如在kitkat中通过以下意图所做的:

if (! Telephony.Sms.getDefaultSmsPackage(this).equals(myPackageName) ) {

            // App is not default.
            // Show the "not currently set as the default SMS app" interface

            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("Yelo is not your default messaging app. Do you want to set it default?")
            .setCancelable(false)
            .setTitle("Alert!")
            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                }
            })
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    Intent intent =new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
                    intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,getPackageName());
                    startActivity(intent);
                }
            });
            builder.show();
        }

就这样。。。我想对所有android版本都这么做。

默认短信应用程序的概念是从KitKat开始的,所以以前的版本没有这样的功能。但它是在“Hello”短信应用程序中完成的。如果我们点击hello作为默认短信应用程序,它将被设置为默认,否则即使你的android版本低于kitkat。我已经在menifest中将receiver的优先级设置为max,这很好。。。但我不知道如何在Java类中而不是在menifest中动态地设置接收器的优先级。