Android打开/关闭数据流量
这个是网上找的,经过自己整理。由于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);}
注:需要添加如下权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
Android打开/关闭数据流量相关推荐
- Appium操作手机网络设置(打开关闭wifi,打开关闭数据流量)
注:Appium并不是所有的手机都能打开数据关闭数据流量成功,打开wifi有确认按钮,需要自己设置 下面放代码 # /usr/bin/env python # -*- coding: utf-8 -* ...
- Android打开/关闭屏幕和设置系统屏幕亮度方法
在有一次处理屏幕的时候,我通过设置值发现怎么都实现不了. 控制屏幕的两种方法: 第一:通过获取PowerManager对象,利用反射.打开/关闭屏幕,上代码: /** * 关闭屏幕 ,其实是使系统休 ...
- android 打开屏幕,android打开关闭屏幕
打开和关闭手机屏幕方法: 1.关闭屏幕 //设备管理者 private DevicePolicyManager mDevicePolicyManager; //关屏组件 private Compone ...
- Android打开/关闭免提(SpeakerPhone)
//打开扬声器 public void OpenSpeaker() { try{ AudioManager audioManager = (AudioManager) mC ...
- Android 打开关闭硬件加速
尊重原创,原文出处:http://www.cnblogs.com/frydsh/archive/2012/10/23/2733581.html Android从3.0(API Level 11)开始, ...
- Android打开/关闭wifi命令
1.切换root权限 # adb root; adb remount 2.关闭wifi # adb shell svc wifi disable 3.打开wifi # adb shell svc wi ...
- Android设备网络数据流量统计
统计自设备启动以来的流量. JSONObject jsonObject = new JSONObject();//获取通过Mobile连接收到的字节总数,但不包含WiFi.long mobileRxB ...
- Android 打开关闭闪光灯(里程碑2.1)
不同的手机,开启闪光灯的方法不一样,这里以摩托罗拉里程碑的手机为例 main.xml: [html] view plaincopy <?xml version="1.0" e ...
- Android 10.0默认开启(关闭)移动数据流量
1.概述 在10.0定制化开发中,互联网网络要么使用wifi要么是数据流量来进行上网,所以对于默认关闭数据流量的功能,也不难实现,找到相应的代码流程,修改默认值就可以了 2.默认开启(关闭)移动数据流 ...
最新文章
- 都2021年了,你还在用Jenkins?赶快看看这些替代方案吧!
- 链表问题2——在双链表中删除倒数第K个节点
- strut2以及路径的一些问题
- (iOS-框架封装)iOS设计模式——MVC模式
- js删除与php后台交互,js动态添加删除,后台取数据(示例代码)_javascript技巧
- VTK:Utilities之Box
- 64.多态性实现机制—静态分派与动态分派(方法解析、静态分派、动态分派、单分派和多分派)
- Android加载大图、多图解决方案
- Log4J 最佳实践之全能配置文件
- 静态路由及默认路由实验配置
- 常见Windows硬件故障
- cad道路里程桩号标注_CAD道路桩号自动编号插件
- 定积分求导例题_高中数学导数简单题——定积分、导数、导数的几何意义等解题方法...
- 3Idiots-2014-Kaggle 比赛源码走读
- 讯飞、有道、谷歌、微软语音sdk集成总结
- 使用Mapper代理开发解决硬编码问题
- 转一次排障经历以供学习
- 漏洞poc和漏洞利用_带HTML的PowershellHTML空白空间隐写术和二进制漏洞利用交付[PoC]
- 苹果大幅砍单?蓝思科技等供应商称未收到通知
- todesk显示已登录在_Todesk无法运行
热门文章
- 使用VS Code 插件, 快速入门超账Fabric(一) : 知识回顾
- vivo x21安装Charles证书步骤
- 纯java处理图片拼接(背景上边添加文字和图片)
- 怎么查看自由幻想服务器返回的信息,自由幻想手游攻略大全 新手攻略技巧汇总[图]...
- VC调试--输出调试字符串(含示例代码)
- C# 3Des加密解密
- fastclick解析与ios11.3相关bug原因分析
- Verilog基础学习二
- 中国将陷入一次大萧条?
- Qt读写Excel--QXlsx插入、读取图片6