1.利用反射(无弹框)

```java
public static final String CLASS_SMS_MANAGER = "com.android.internal.telephony.SmsApplication";
public static final String METHOD_SET_DEFAULT = "setDefaultApplication";
private void setDefaultSmsApplication(String packageName) {
    Log.d(TAG, "setDefaultApplication: " + packageName);
    try {
        Class<?> smsClass = Class.forName(CLASS_SMS_MANAGER);
        Method method = smsClass.getMethod(METHOD_SET_DEFAULT, String.class, Context.class);
        method.invoke(null, packageName, this);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
```

2.有弹框的方式

```java
private void setDefaultSmsApplication() {
    String packageName = getPackageName();
    if (!Telephony.Sms.getDefaultSmsPackage(this).equals(packageName)) {
        Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
        intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName);
        startActivity(intent);
    }
}
```

参考博客:

https://blog.csdn.net/qq_33829413/article/details/81354728

更多相关文章

  1. 【Android】创建Popwindow弹出菜单的两种方式
  2. Android沉浸式状态栏三种方式的实现
  3. Android利用反射获取状态栏(StatusBar)高度
  4. Android api 数据的保存方式
  5. Android 三种方式实现圆角ImageView
  6. Android 创建与解析XML(五)—— Dom4j方式
  7. Android 三种方式实现圆形ImageView
  8. android jni (jni_onload方式)
  9. 《IT蓝豹》android 7种网络连接方式

随机推荐

  1. Android mac 真机调试
  2. Android菜鸟日记29-杂记
  3. Android 设备监听网络状态变化
  4. Android使用动画的注意事项
  5. Android Drawable 那些不为人知的高效用
  6. 浅谈android系统java调用C++函数传参过程
  7. LoaderManager - Android(安卓)3.0新特性
  8. Android UI结构源码研究
  9. eclipse使用appcompat_v7库无法找到andro
  10. 【Android】Android性能测试之MAT的使用