Android设置默认的数据卡
来源:互联网 发布:飞鸽传书软件怎么用 编辑:程序博客网 时间:2024/06/16 14:35
在双卡的安卓手机中,如何利用代码设置默认的数据流量卡呢,可以利用android原生API提供的一个方法,即SubscriptionManager.setDefaultDataSubId(int subId).源码如下:
/** @hide */
public void setDefaultDataSubId(int subId) {
if (VDBG) logd("setDataSubscription sub id = " + subId);
try {
ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub"));
if (iSub != null) {
iSub.setDefaultDataSubId(subId);
}
} catch (RemoteException ex) {
// ignore it
}
}
public void setDefaultDataSubId(int subId) {
if (VDBG) logd("setDataSubscription sub id = " + subId);
try {
ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub"));
if (iSub != null) {
iSub.setDefaultDataSubId(subId);
}
} catch (RemoteException ex) {
// ignore it
}
}
这个方法有@hide注解,所以用的时候需要利用反射进行调用,调用方法如下:
public void setDefaultDataSub(int slotindex){ SubscriptionManager sm = SubscriptionManager.from(this); int subId = sm.getActiveSubscriptionInfoForSimSlotIndex(slotindex).getSubscriptionId(); try { Method method = sm.getClass().getMethod("setDefaultDataSubId",int.class); if(method != null) { method.invoke(sm,subId); } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); }}经本人验证,该方法有效。另外,如果想设置默认的通话卡或者短信卡,也有相关的API,setDefaultSmsSubId(int subId)和setDefaultVoiceSubId(int subId),同时也有相应的get方法来获取默认的数据卡、短信卡、语音卡subId。这些方法只能用于android API level 23及以上,而且在我的联想设备上,apk必须装到system/priv-app下面,set方法才有效,否则会报java.lang.reflect.InvocationTargetException异常,get方法应该不需要是系统应用,也不需要利用反射机制,可以直接调用。
阅读全文
0 0
- Android设置默认的数据卡
- Android APN的设置问题 默认“已起用数据” 关闭
- Android APN的设置问题 默认“已起用数据” 关闭
- android默认的设置修改
- Android设备获取默认的启用数据卡的SubId
- Android menu默认样式的设置
- android 设置默认的横屏
- Android Studio设置默认的签名文件
- android 设置默认状态的改变
- 【android】数据流量的默认配置
- android 设置默认输入法
- android默认输入法设置
- android 设置默认输入法
- Android设置默认浏览器
- Android设置默认时间
- android 设置默认浏览器
- android设置默认输入法
- android默认输入法设置
- 习题5,5.3
- swift3.0 中class和static
- (四)结构体、共用体、枚举、字节对齐
- 轻松学习RSA加密算法原理综合三篇文章
- turtlebot 利用cartographer 建图
- Android设置默认的数据卡
- ubuntu 安装 php-zip 扩展
- 一种提高微服务架构的稳定性与数据一致性的方法
- STM32分配堆栈空间不足问题原因及解决方法
- java集合框架的练习之ArrayList集合的运用
- MYSQL基本语法、备份、增删改查、实例
- 使用Glide加载网络图片,显示到高德地图的marker
- 微服务架构的设计模式
- 我的第一篇博客