android 之 3G/gprs
16lz
2021-01-26
private boolean getMobileDataStatus(Context context) { ConnectivityManager conMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); Class<?> conMgrClass = null; // ConnectivityManager类 Field iConMgrField = null; // ConnectivityManager类中的字段 Object iConMgr = null; // IConnectivityManager类的引用 Class<?> iConMgrClass = null; // IConnectivityManager类 Method getMobileDataEnabledMethod = null; // setMobileDataEnabled方法 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类中的getMobileDataEnabled(boolean)方法 getMobileDataEnabledMethod = iConMgrClass.getDeclaredMethod("getMobileDataEnabled"); // 设置getMobileDataEnabled方法可访问 getMobileDataEnabledMethod.setAccessible(true); // 调用getMobileDataEnabled方法 return (Boolean) getMobileDataEnabledMethod.invoke(iConMgr); } 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) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } /** * 移动网络开关 */ private void toggleMobileData(Context context, boolean enabled) { ConnectivityManager conMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); Class<?> conMgrClass = null; // ConnectivityManager类 Field iConMgrField = null; // ConnectivityManager类中的字段 Object iConMgr = null; // IConnectivityManager类的引用 Class<?> iConMgrClass = null; // IConnectivityManager类 Method setMobileDataEnabledMethod = null; // setMobileDataEnabled方法 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(); } }回复 支持 反对
更多相关文章
- Android(安卓)使用Parcelable接口
- Android(安卓)之Http
- 跳转到Android网络设置
- 交互式实例
- GLSurfaceView使用-入门之HelloWorld--画背景图
- Android(安卓)Studio下 SVN忽略文件设置
- Android学习笔记(2)————Android四大组件之二(Service )
- Android学习笔记(1)————Android四大组件之一(Activity)
- Android(安卓)Parcelable接口使用方法详解