android开启和关闭移动网络
来源:互联网 发布:mac版千牛怎么打单 编辑:程序博客网 时间:2024/04/30 23:44
转自:http://blog.csdn.net/stevenhu_223/article/details/7860964
/** * 移动数据开启和关闭 * * @param context * @param enabled */public void setMobileDataStatus(Context context, boolean enabled){ConnectivityManager conMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);// ConnectivityManager类Class<?> conMgrClass = null;// ConnectivityManager类中的字段Field iConMgrField = null;// IConnectivityManager类的引用Object iConMgr = null;// IConnectivityManager类Class<?> iConMgrClass = null;// setMobileDataEnabled方法Method setMobileDataEnabledMethod = null;try {// 取得ConnectivityManager类conMgrClass = Class.forName(conMgr.getClass().getName());// 取得ConnectivityManager类中的对象MserviceiConMgrField = conMgrClass.getDeclaredField("mService");// 设置mService可访问iConMgrField.setAccessible(true);// 取得mService的实例化类IConnectivityManageriConMgr = iConMgrField.get(conMgr);// 取得IConnectivityManager类iConMgrClass = Class.forName(iConMgr.getClass().getName());// 取得IConnectivityManager类中的setMobileDataEnabled(boolean)方法setMobileDataEnabledMethod = iConMgrClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);// 设置setMobileDataEnabled方法是否可访问setMobileDataEnabledMethod.setAccessible(true);// 调用setMobileDataEnabled方法setMobileDataEnabledMethod.invoke(iConMgr, enabled);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (NoSuchFieldException e) {e.printStackTrace();} catch (SecurityException e) {e.printStackTrace();} catch (NoSuchMethodException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}} /** * 获取移动数据开关状态 * * @param context * @param getMobileDataEnabled * @return */public boolean getMobileDataStatus(Context context,String getMobileDataEnabled){ConnectivityManager cm;cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);Class cmClass = cm.getClass();Class[] argClasses = null;Object[] argObject = null;Boolean isOpen = false;try {Method method = cmClass.getMethod(getMobileDataEnabled, argClasses);isOpen = (Boolean) method.invoke(cm, argObject);} catch (Exception e) {e.printStackTrace();}return isOpen;}
最后,别忘了在AndroidMannifest.xml文件里添加访问权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
通过上面的代码可以知道,当开启移动网络时调用setMobileDataStatus(context,true),关闭调用setMobileDataStatus(context,false),通过getMobileDataStatus(String getMobileDataEnabled)方法返回的布尔值判断当移动数据网络前状态的开启和关闭。
- android开启和关闭移动网络
- 实现开启和关闭android移动网络
- 实现开启和关闭android移动网络
- 实现开启和关闭android移动网络
- 开启和关闭android移动网络
- android 开启关闭移动网络
- 实现开启和关闭android移动网络(做AppWidget开发的收获)
- 实现开启和关闭Android移动网络(做AppWidget开发的收获)
- android中如何通过代码来开启和关闭移动网络
- 实现开启和关闭android移动网络(做AppWidget开发的收获)
- 实现开启和关闭android移动网络(做AppWidget开发的收获)
- android关闭或开启移动网络数据(关闭后,设备不可以上网,但可以打电话和发短信)
- Android网络开启、关闭整理
- Android网络开启、关闭整理
- Android网络开启、关闭整理
- android 打开/关闭 移动网络
- Android开启和关闭闪光灯
- 获取移动网络的状态及移动网络的开启与关闭
- USB在线编程器FORTE
- android中获取手机后台运行服务的方法
- 【Linux基础】其他命令
- 程序员如何修复婚姻的 bug?
- POJ 计算几何入门题目推荐
- android开启和关闭移动网络
- 未能找到clazz=com.sysway.boss.service.party.role.IHobbyService的mock实现,请确认已有该接口的mock实
- 品牌电商成本核算与精细化成本控制
- MYSQL 存储过程,游标和触发器
- 【CC攻击是什么?linux下该如何解决这个问题】
- 系统理解Win32 API和MFC
- Microsoft Remoting 初步研究笔记二三事(针对.NET2.0)
- DEDE 列表页中调用图集图片
- .pch/release-shared-emb-arm/QtGui: No such file or directory