这个是网上找的,经过自己整理。由于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. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. 重定向android log
  4. exp: 修改Android中strings.xml文件, 动态改变数据
  5. 【android测试】值得学习的android测试知识连接
  6. Android--WebView+HTML+Javascript
  7. Android网络状态获取类 在api 29中 NetworkInfo Deprecated
  8. unity内置浏览器插件UniWebView的使用(支持Android,ios,Mac)
  9. Android(安卓)中数据库查询方法 query() 中的 select

随机推荐

  1. Java套接字编程(下)(1)
  2. xml文件介绍及使用
  3. XML的术语
  4. 第2章 包装类
  5. XML轻松学习总节篇
  6. Java对象的强、软、弱和虚引用
  7. XML轻松学习手册(2)XML概念
  8. JS解析XML文件和XML字符串详解
  9. XML文件结构和基本语法
  10. 了解Xml格式