android开启和关闭移动网络
2013-06-06 10:22
615 查看
转自:http://blog.csdn.net/stevenhu_223/article/details/7860964
最后,别忘了在AndroidMannifest.xml文件里添加访问权限
通过上面的代码可以知道,当开启移动网络时调用setMobileDataStatus(context,true),关闭调用setMobileDataStatus(context,false),通过getMobileDataStatus(String getMobileDataEnabled)方法返回的布尔值判断当移动数据网络前状态的开启和关闭。
/** * 移动数据开启和关闭 * * @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类中的对象Mservice iConMgrField = conMgrClass.getDeclaredField("mService"); // 设置mService可访问 iConMgrField.setAccessible(true); // 取得mService的实例化类IConnectivityManager iConMgr = 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移动网络(做AppWidget开发的收获)
- 实现开启和关闭android移动网络
- android关闭或开启移动网络数据(关闭后,设备不可以上网,但可以打电话和发短信)
- 实现开启和关闭Android移动网络(做AppWidget开发的收获)
- 实现开启和关闭android移动网络
- 实现开启和关闭android移动网络(转)
- android 开启关闭移动网络
- android实现关闭或开启移动网络数据
- android中如何通过代码来开启和关闭移动网络
- 实现开启和关闭android移动网络(做AppWidget开发的收获)
- 实现开启和关闭android移动网络(做AppWidget开发的收获)
- 实现开启和关闭android移动网络
- 开启和关闭android移动网络
- Android网络开启、关闭整理
- [Android Traffic] Android网络开启、关闭整理
- android Data call disable(移动网络--关闭数据业务部分)
- Android判断是否有网络连接,如果没有开启移动网络
- Android移动数据开关开启关闭方法
- Android网络开启、关闭整理
- Android网络开启、关闭整理http://www.cnblogs.com/huazaizai/p/3398675.html