Android 5.0以前使用ConnectivityManager通过反射两个方法setMobileDataEnabled和getMobileDataEnabled来控制移动网络开和关。 
Android 5.0以后使用TelephonyMananger类通过反射获取setDataEnabled和getDataEnabled类完成操作。 
注意:需要使用系统权限:android:sharedUserId=”android.uid.system”。系统需要root

//适应Android5.0+

public void setMobileDataState(Context context, boolean enabled) {    TelephonyManager telephonyService = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);    try {        Method setDataEnabled = telephonyService.getClass().getDeclaredMethod("setDataEnabled",boolean.class);        if (null != setDataEnabled) {            setDataEnabled.invoke(telephonyService, enabled);        }    } catch (Exception e) {        e.printStackTrace();    }}public boolean getMobileDataState(Context context) {    TelephonyManager telephonyService = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);    try {        Method getDataEnabled = telephonyService.getClass().getDeclaredMethod("getDataEnabled");        if (null != getDataEnabled) {            return (Boolean) getDataEnabled.invoke(telephonyService);        }    } catch (Exception e) {        e.printStackTrace();    }    return false;}

 

/** 别忘了添加权限 **/
 

 

更多相关文章

  1. 好用的Android(安卓)Studio插件
  2. 使用模拟器运行应用
  3. Android侧滑菜单DrawerLayout的使用
  4. Android(安卓)7.0 后拍照和相册选择
  5. Android(安卓)ART 垃圾回收 机制&算法
  6. android:windowSoftInputMode属性使用
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. Android(安卓)SDK相关介绍
  2. android中自定义属性三步骤
  3. android电池 framework层
  4. 使用Eclipse开发Android源码
  5. Failed to install on device 'emulator-
  6. 5.0 导入错误 出现"Loading data for And
  7. Android(安卓)ADT中增大AVD内存后无法启
  8. Android管理系统状态栏和导航栏
  9. EventBus3.0配置及使用
  10. Android(安卓)Lint简介