Android(安卓)GPRS的自动打开与关闭
16lz
2021-01-25
本例中需要的权限:
- <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
- <uses-permissionandroid:name="android.permission.CHANGE_NETWORK_STATE"/>
本例子中的GPRS打开与关闭是自动的, 不会出现系统那个手动GPRS设置界面。
Android中GPRS的打开和关闭比较难搞, 因为它没有专门的方法提供给你。 GPRS打开与关闭的方法都在framework, 所以我们要调用framework里的方法来操作GPRS开关。
需要调用的方法:
1. getMobileDataEnabled 检查GPRS是否开启
2. setMobileDataEnabled 设置GPRS开关
首先我们需要声明一个网络链接相关操作类
[java]
private ConnectivityManager mCM;
在初始化中实例化
[java]
mCM = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
接下来用到了三个自定义的方法
gprsIsOpenMethod 是从framework中取得getMobileDataEnabled这个方法, 主要用来检测GPRS是否打开
setGprsEnabled 取得setMobileDataEnabled方法, 用来打开或关闭GPRS
在这里我们只要调用grpsEnabled即可。
- //打开或关闭GPRS
- privatebooleangprsEnabled(booleanbEnable)
- {
- Object[]argObjects=null;
- booleanisOpen=gprsIsOpenMethod("getMobileDataEnabled");
- if(isOpen==!bEnable)
- {
- setGprsEnable("setMobileDataEnabled",bEnable);
- }
- returnisOpen;
- }
- //检测GPRS是否打开
- privatebooleangprsIsOpenMethod(StringmethodName)
- {
- ClasscmClass=mCM.getClass();
- Class[]argClasses=null;
- Object[]argObject=null;
- BooleanisOpen=false;
- try
- {
- Methodmethod=cmClass.getMethod(methodName,argClasses);
- isOpen=(Boolean)method.invoke(mCM,argObject);
- }catch(Exceptione)
- {
- e.printStackTrace();
- }
- returnisOpen;
- }
- //开启/关闭GPRS
- privatevoidsetGprsEnabled(StringmethodName,booleanisEnable)
- {
- ClasscmClass=mCM.getClass();
- Class[]argClasses=newClass[1];
- argClasses[0]=boolean.class;
- try
- {
- Methodmethod=cmClass.getMethod(methodName,argClasses);
- method.invoke(mCM,isEnable);
- }catch(Exceptione)
- {
- e.printStackTrace();
- }
- }
Class.getMethod 是从framework搜索指定的方法, 返回的Method就可以使用该方法, 第二个参数是该方法的参数类型。
Method.invoke 使用从framework里搜索到的方法, 第二个是参数。
更多相关文章
- Android(安卓)MVP 模式 项目初体验(一)
- 学习Android闹钟源代码(三)-AlarmClock类分析(part1)
- adb通过wifi连接方法
- Android抓包方法(一)之Fiddler代理
- Android(安卓)消息机制(Handler Looper Message )理解
- 控制android弹出框不消失(用到反射的方法)
- Android(安卓)使用ORMLite操作数据库
- Android(安卓)Native程序crash的一些定位方法简介
- web网页和ios、android进行交互