这个是网上找的,经过自己整理。由于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. Android(安卓)集成Facebook分享功能
  2. Android(安卓)BroadcastReceiver小结
  3. Android Studio 快捷键 (Mac OS X 10.5+)
  4. Android(安卓)使用Intent启动常用的应用
  5. Android 完全退出应用程序实现代码
  6. Android(安卓)获取cache缓存的目录路径
  7. Android 3.0 r1中文API文档(103) —— In
  8. Android(java)学习笔记68:同步代码块的锁和
  9. Android(安卓)UI设计--ListView内嵌Check
  10. android ble蓝牙开发略解-Android 蓝牙4.