How to set my application as default to receive SMS

前端 未结 1 1732
南方客
南方客 2021-01-07 00:51

i\'m developing an application to send and receive SMS. I want to add the option to set my application as default like Hangout of Google:

相关标签:
1条回答
  • 2021-01-07 01:34

    How to set your app as default messaging app?

    Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
    intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, YOUR_PACKAGE_NAME);
    

    How to check if your app is default messaging app?

    @TargetApi(Build.VERSION_CODES.KITKAT)
    public static boolean isDefaultSmsApp(Context context) {
        return context.getPackageName().equals(Telephony.Sms.getDefaultSmsPackage(context));
    }
    

    From the preference activity add OnPreferenceClickListener and add the following code inside it which first check if it is already a default messaging app, then opens a screen where the user can change it else set the current app as the default messaging app. Confirmation screen user will get

     if (isDefaultSmsApp(getActivity())) {
                            startActivityForResult(new Intent(Settings.ACTION_WIRELESS_SETTINGS), 0);
                        } else {
                        final String packageName = getActivity().getPackageName();
                            Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
                            intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName);
                            startActivityForResult(intent, 0);
                        }
    
    0 讨论(0)
提交回复
热议问题