这个是网上找的,经过自己整理。由于android并未公开这个类,因此如果要打开/关闭数据,需要通过反射

16/09/29注:5.0以上无效

MobileDataSwitcher.java

import java.lang.reflect.Method;import android.content.Context;import android.net.ConnectivityManager;public class MobileDataSwitcher {@SuppressWarnings({ "rawtypes", "unchecked" })public void setMobileData(Context pContext, boolean pBoolean) {      try     {          ConnectivityManager mConnectivityManager = (ConnectivityManager) pContext.getSystemService(Context.CONNECTIVITY_SERVICE);          Class ownerClass = mConnectivityManager.getClass();          Class[] argsClass = new Class[1];          argsClass[0] = boolean.class;          Method method = ownerClass.getMethod("setMobileDataEnabled", argsClass);          method.invoke(mConnectivityManager, pBoolean);        } catch (Exception e) {          e.printStackTrace();      }  }    /**  * 返回手机移动数据的状态  * @param pContext  * @param arg 默认填null  * @return true 连接 false 未连接  */  @SuppressWarnings({ "rawtypes", "unchecked" })public  boolean getMobileDataState(Context pContext, Object[] arg) {      try     {          ConnectivityManager mConnectivityManager = (ConnectivityManager) pContext.getSystemService(Context.CONNECTIVITY_SERVICE);          Class ownerClass = mConnectivityManager.getClass();          Class[] argsClass = null;          if (arg != null) {              argsClass = new Class[1];              argsClass[0] = arg.getClass();          }          Method method = ownerClass.getMethod("getMobileDataEnabled", argsClass);          Boolean isOpen = (Boolean) method.invoke(mConnectivityManager, arg);          return isOpen;      } catch (Exception e) {          return false;      }  }}

上面这个类有两个方法,一个是设置数据是否打开,另一个是判断是否已经打开,调用方法如下

if(mMobileDataSwitcher.getMobileDataState(mContext, null)){//mData.setBackgroundResource(R.drawable.tool_data_off);mMobileDataSwitcher.setMobileData(mContext, false);}else{//mData.setBackgroundResource(R.drawable.tool_data_on);mMobileDataSwitcher.setMobileData(mContext, true);}

注:需要添加如下权限

        


更多相关文章

  1. exp: 修改Android中strings.xml文件, 动态改变数据
  2. Android 数据绑定视图 dataBinding
  3. Android 中数据库查询方法 query() 中的 select
  4. Android 关于获取摄像头帧数据
  5. Android中使用Gson解析JSON数据
  6. 安卓9.0 http请求数据失败解决办法
  7. 待机后,android中activity的数据丢失问题解决
  8. Android 封装json数据
  9. android SQLite数据库基本操作示例

随机推荐

  1. Android(安卓)USB Accessory
  2. Android(安卓)USB Host
  3. android studio去除标题栏
  4. android > layout > TableLayout
  5. 自定义shape 渐变色
  6. android自定义SeekBar
  7. Android(安卓)ConstraintLayout常用属性
  8. android api sdk
  9. Android(安卓)自定义View练手Demo(一)实现
  10. android普通权限