Android如何将第三方信息应用设置为默认信息应用?
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
更多相关文章
- 【Android】创建Popwindow弹出菜单的两种方式
- Android沉浸式状态栏三种方式的实现
- Android利用反射获取状态栏(StatusBar)高度
- Android api 数据的保存方式
- Android 三种方式实现圆角ImageView
- Android 创建与解析XML(五)—— Dom4j方式
- Android 三种方式实现圆形ImageView
- android jni (jni_onload方式)
- 《IT蓝豹》android 7种网络连接方式