Android GPRS的自动打开与关闭。

[源码]android设备上GPRS的开启和关闭 [源码]android设备上GPRS的开启和关闭,完整工程,直接可用 立即下载

本例中需要的权限:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />

工程源码下载:      http://download.youkuaiyun.com/detail/knowheart/4283058

  

   本例子中的GPRS打开与关闭是自动的, 不会出现系统那个手动GPRS设置界面。

   Android中GPRS的打开和关闭比较难搞, 因为它没有专门的方法提供给你。 GPRS打开与关闭的方法都在framework, 所以我们要调用framework里的方法来操作GPRS开关。

  需要调用的方法:

  1. getMobileDataEnabled   检查GPRS是否开启

  2. setMobileDataEnabled   设置GPRS开关

  首先我们需要声明一个网络链接相关操作类

  private ConnectivityManager mCM;


  在初始化中实例化

mCM = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);


接下来用到了三个自定义的方法

gprsIsOpenMethod  是从framework中取得getMobileDataEnabled这个方法, 主要用来检测GPRS是否打开

setGprsEnabled  取得setMobileDataEnabled方法, 用来打开或关闭GPRS

在这里我们只要调用grpsEnabled即可。

//打开或关闭GPRS
	private boolean gprsEnabled(boolean bEnable)
	{
		Object[] argObjects = null;
				
		boolean isOpen = gprsIsOpenMethod("getMobileDataEnabled");
		if(isOpen == !bEnable)
		{
			setGprsEnable("setMobileDataEnabled", bEnable);
		}
		
		return isOpen;	
	}
	
	//检测GPRS是否打开
	private boolean gprsIsOpenMethod(String methodName)
	{
		Class cmClass 		= mCM.getClass();
		Class[] argClasses 	= null;
		Object[] argObject 	= null;
		
		Boolean isOpen = false;
		try
		{
			Method method = cmClass.getMethod(methodName, argClasses);

			isOpen = (Boolean) method.invoke(mCM, argObject);
		} catch (Exception e)
		{
			e.printStackTrace();
		}

		return isOpen;
	}
	
	//开启/关闭GPRS
	private void setGprsEnabled(String methodName, boolean isEnable)
	{
		Class cmClass 		= mCM.getClass();
		Class[] argClasses 	= new Class[1];
		argClasses[0] 		= boolean.class;
		
		try
		{
			Method method = cmClass.getMethod(methodName, argClasses);
			method.invoke(mCM, isEnable);
		} catch (Exception e)
		{
			e.printStackTrace();
		}
	}

Class.getMethod   是从framework搜索指定的方法,  返回的Method就可以使用该方法, 第二个参数是该方法的参数类型。

Method.invoke  使用从framework里搜索到的方法, 第二个是参数。

 

工程源码下载:      http://download.youkuaiyun.com/detail/knowheart/4283058

【PCIe】CDNS PCIe VIP 杂记 -- Callback 最近在研究Cadence PCIe VIP,怎一个“惨淡”来描述。用的真是一言难尽啊,都是泪。记录一些最近学习的觉得想记录的内容在此,仅供参考讨论学习哈。有不对之处请指出大家一起讨论。 阅读详情

相关推荐

麒麟KylinV10系统yum源更换全攻略:从官方源到第三方仓库的保姆级教程

本文详细介绍了麒麟KylinV10系统yum源的更换与优化方法,包括官方源配置、第三方仓库集成及RPM包管理技巧。通过实战案例和命令示例,帮助用户快速解决软件依赖问题,提升系统管理效率。特别适合需要在国产操作系统上进行开发的工程师参考。

weixin_30752699的博客 648

android自动开关流量,android开关gprs流量

搜索热词下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。package com.example.gprstoggle;import java.lang.reflect.Method;import android.app.Activity;import android.content.Context;import android.net.Co...

weixin_32685111的博客 457

告别C盘空间焦虑!Miniforge环境路径精准配置全攻略

本文深入解析Miniforge虚拟环境默认占用C盘空间的根本原因,即未正确配置`.condarc`文件中的`envs_dirs`路径优先级。通过详细的诊断步骤与配置命令,指导用户将环境路径精准迁移至指定磁盘(如D盘),并分享禁用自动激活、使用`--prefix`参数等高阶技巧,帮助开发者彻底告别C盘空间焦虑,实现虚拟环境的整洁与可控管理。

weixin_28831399的博客 238

Android 5.0以上移动网络开关

Android 5.0以前使用ConnectivityManager通过反射两个方法setMobileDataEnabled和getMobileDataEnabled来控制移动网络开和关。 Android 5.0以后使用TelephonyMananger类通过反射获取setDataEnabled和getDataEnabled类完成操作。 注意:需要使用系统权限:android:sharedUse

llj0201的专栏 5867

双模音频解码器设计:USB+蓝牙LDAC平衡输出方案

音频解码器是数字音频系统中实现数模转换的核心组件,其性能直接决定音质保真度与系统延迟。基于高集成SoC的解码方案通过统一时钟域与片内DSP处理,有效抑制Jitter并简化硬件拓扑;结合全平衡模拟输出架构,可显著提升共模抑制比(CMRR)与信噪比(SNR)。该技术路径广泛应用于便携式Hi-Res音频设备、USB-C小尾巴DAC及蓝牙高解析耳机放大器等场景。本文围绕ES9038Q2M双模SoC展开,详解其在LDAC协议支持、UAC2.0兼容性及平衡电流型DAC输出方面的工程实现,为高性能、可量产音频硬件开发提供

weixin_42613018的博客 388

【Qt】QByteArray详解

对象共享同一份数据,直到修改时才进行深拷贝,以节省内存和计算资源。:可存储任意二进制数据(如图片、音频、协议数据),不依赖字符编码。与编码(如 UTF-8、Latin-1)之间的桥梁(例如。• 补零规则确保奇数字符串能正确解析,避免数据截断。:内部自动分配和释放内存,无需手动管理。将输入的字符串视为十六进制编码数据,返回实际数据长度(不包括结尾的。的输入必须是有效的十六进制字符(,但针对 Qt 框架做了优化。:处理加密后的二进制结果(如。• 如果输入字符串长度为奇数,• 若输入长度为奇数,自动在。

CSUC的博客 1598

5.0以上移动数据的关闭

关于移动数据的的关闭开启,android5.0之前的方式是 /** * 启动、禁用移动数据 * @param context * @param flag * @param chkCurrent 是否需检查当前状态 */ public static void allowMobileData(Context context, boolean

MaoDunTi的专栏 1045

金蝶ERP元数据解析:字段属性与表结构映射实战

本文深入解析金蝶ERP元数据的核心价值与应用实践,详细介绍了字段属性与表结构映射的关键技术。通过缓存获取与工具类直连两种方案对比,结合实际案例展示元数据在数据库校验、动态表单生成等场景的应用,帮助开发者高效解决二次开发中的常见问题。

weixin_33738555的博客 433

Android5.0以上系统的移动网络开关

笔者最近遇到一个非常有意思的bug,贴出来和大家分享下。 那是一个温暖的早晨,阳光晒的人很舒服。一封bug邮件像一片叶子飘到我的邮箱。一番交流,笔者确认负责的Widget开关在Android5.0以上系统没有作用。相信很多做过移动网络开关的朋友都知道,在ConnectivityManager中有两个方法setMobileDataEnabled和getMobileDataEnabled通过反射来控制

小强就是我的专栏 7289

从数据到图片:手把手构建FMCW雷达人体行为识别数据集(行走、跌倒、喝水等6类动作)

本文详细解析了如何利用FMCW雷达构建人体行为识别数据集,涵盖行走、跌倒、喝水等6类动作。通过多普勒特征可视化、图像标准化处理和自动化流水线设计,将原始雷达信号转化为高质量时频图像数据集,为智能家居和健康监护等应用提供可靠数据支持。

weixin_30706691的博客 384

虚拟电厂功率预测最佳实践白皮书

虚拟电厂(VPP)通过聚合分散的可再生能源资源,为电网提供可观测、可调度和可交易的解决方案。本文提出了一套功率预测方法论,并给出LSTM实现脚本,涵盖资源接入、数据治理、预测模型设计及市场交易闭环。针对风-光-储-负荷混合场景,该方法论强调轻量化部署和滚动优化,可有效提升预测精度和调度收益。未来研究将融合深度气象预报和强化学习,进一步优化VPP的协同调度能力。

专注AI大模型,软件混淆,授权 377

Android GPRS的自动打开与关闭

本例中需要的权限: 本例子中的GPRS打开与关闭是自动的, 不会出现系统那个手动GPRS设置界面。 Android中GPRS的打开和关闭比较难搞, 因为它没有专门的方法提供给你。 GPRS打开与关闭的方法都在framework, 所以我们要调用framework里的方法来操作GPRS开关。 需要调用的方法: 1. getMobileDataEnabled 检查GPRS

yakedar的专栏 1042

【AI智能体】Codex 基于Git 实现项目管理实战操作详解

Codex 基于Git 实现项目管理实战操作详解

congge 5455

Android 打开关闭GPRS数据流量

工具类代码如下: package com.example.x.changegprs;import android.content.Context; import android.net.ConnectivityManager;import java.lang.reflect.Method;/** * Created by X on 2016/8/25. */ public class Tools

筱丶新的博客 3038

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android 用代码打开 gprs(流量开关) android 5.0 ROOT

在安卓5.0之前打开gprs 通常都是通过 反射调用 ConnectivityManager 的setMobileDataEnabled方法打开流量 //检测GPRS是否打开 private static boolean gprsIsOpenMethod(ConnectivityManager mCM ,String methodName) { Class cm

Mark_YPQ的专栏 5438

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android app与gprs通信,gprs连接管理app

gprs连接管理app是一款手机系统自带辅助小工具,帮助用户进行快速GPRS数据流量管理!现在的4G流量资费又是非常快且还不便宜,要是忘记关数据开关,手机在后台又偷跑应用的话,会一不小心浪费大量的流量!这是十分不爽的,但是有了gprs连接管理,就不用担心了,它体积小,几乎不占内存,在该应用中调整好设置后,它会在手机屏幕关闭时自动关掉流量,唤醒屏幕时自动打开并提醒用户!应用简介:本应用用来管理gpr...

weixin_39968946的博客 366

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

android 在锁屏状态下打开GPRS

我的android手机在开锁的时候要使用滑动解锁,但是尝试的次数貌似只有30次。 前几天我的手机被同学拿去,结果他不知道密码所以就一直在不断的尝试,结果尝试的次数太多,手 机开启了锁定模式,只有使用谷歌帐号登录才能解锁手机!! 谷歌帐号我当然有,可是但是我的手机GPR关闭了,直接导致我的帐号登录不了啊!!重启也不行!最后我认为只有刷机了。。。 当我和另一个同学提起的时候,...

weixin_30518397的博客 143

android使用代码实现gps,gprs,wifi打开与关闭

Android中使用代码开关GPS、移动网络(GPRS)、WiFi   以下方法在2.1中测试成功。理论上2.1以上应该也可以。不过2.1以后的Android版本中已经有提供了相关方法,详见aundroid.provider.Settings.Secure类。 记得在AndroidManifest.xml中声明相关权限: android

不一样的技术人 1044

android定位之GPS,WIFI和GPRS(NETWORK)方式的定位(含实现源码)

大家有什么疑问可以留言,我们共同解决!留言哦! 以下代码复制即可执行: Java源码: Android中LocationManager的提供了一系列方法来地理位置相关的问题,包括查询上一个已知位置;注册/注销来自某个 LocationProvider的周期性的位置更

大写的牛逼 6557

打开/关闭GPRS网络数据

int bv = Build.VERSION.SDK_INT; boolean turnOnDataConnection(boolean ON,Context context) { try{ if(bv == Build.VERSION_CODES.FROYO) { Method dataConnSwitchmethod;

nosxcy的专栏 1490

打开/关闭移动数据开关

由于打开或者关闭GPRS的API是隐藏的,这里采用JAVA反射机制来实现打开或者关闭移动数据开关。 private void setNetEnabled(Context context, boolean enabled) throws Exception { final ConnectivityManager conman = (ConnectivityManager) cont

smqh2011的专栏 2201

Android中设置、打开GPS的两种方法,包括反射的应用

1. 内容简介: 在实际项目的开发中,经常需要实现定位功能,这就需要使用GPS,那么,如何用代码实现GPS的打开呢?本节介绍2种方法: 第一种,使用Settings提供的GPS设置功能; 第二种,使用反射的方式。

记录和分享程序人生的点点滴滴 1214

android要比ios耗电,这几个原因导致苹果手机耗电比安卓手机快

原标题:这几个原因导致苹果手机耗电比安卓手机快 想必大家都知道,现在最受人们喜欢的手机就是苹果了。而其中最受欢迎的一个主要原因就是其独一无二的ios 处理系统,它的性能是出了名的稳定,在使用的过程中,很少会出现手机顿卡的情况,但这恰恰也是安卓手机一个致命的缺陷,用过安卓的大家都知道,时间一长手机就会变得及其的运行不流畅。不过再好的东西也会有缺点的,苹果也不例外,它的短处就电量消耗的特别快,换句话说...

weixin_31358991的博客 3048

Android GPRS开关软件(APN开关)

简单高效的GPRS开关/APN开关软件。支持的功能有: · 一键开启/关闭移动网络(GPRS、3G等) · 一键开启/关闭APN · 支持桌面Widget,点击即打开或关闭移动网络 注意:使用前要设置->无线和网络->移动网络->数据服务 开启数据服务权限 v1.1版本更新 * 修正了增加了桌面Widget快捷开关 *桌面...

weixin_33694172的博客 349

Android实现启用GPRS/3G网络

如果要用android程序来实现wifi的开启和关闭,是一件十分简单的事,使用WifiManager就可以实现对android wifi接口的控制,开启和关闭wifi都是仅需要两行代码。但如果你想通过代码来实现对gsm、gprs或者3G等移动网络接口控制的话,则不是那么容易了,因为在android开发者文档里并没有明确的方法来实现的,通过查看android的源代码可以知道,源...

weixin_34261415的博客 175
上一篇: Android 全局变量
下一篇: Android ListView 列表控件的简单使用
克雷斯
博客等级 码龄17年 36粉丝 42原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值