位置: 编程技术 - 正文

Android判断用户2G/3G/4G移动数据网络(android判断应用是否在前台)

编辑:rootadmin

推荐整理分享Android判断用户2G/3G/4G移动数据网络(android判断应用是否在前台),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android判断dialog是否显示,android判断应用是否在前台,android判断dialog是否显示,android 判断,android判断用户名密码,android 判断,android判断用户名是否为空,android判断用户名密码,内容如对您有帮助,希望把文章链接给更多的朋友!

在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以在 App 的设置模块里,让用户自己选择,在 2G / 3G / 4G 网络条件下,是否允许请求一些流量比较大的数据。

通过 Android 提供的 TelephonyManager 和 ConnectivityManager 都可以获取到 NetworksInfo 对象,可以通过 getType() 获取类型,判断是 wifi 还是 mobile ,如果是 mobile ,可以通过 NetworksInfo 对象的 getSubType() 和 getSubTypeName() 可以获取到对于的网络类型和名字。

网络类型和名字定义在 TelephonyManager 类里。

/** Network type is unknown */public static final int NETWORK_TYPE_UNKNOWN = 0;/** Current network is GPRS */public static final int NETWORK_TYPE_GPRS = 1;/** Current network is EDGE */public static final int NETWORK_TYPE_EDGE = 2;/** Current network is UMTS */public static final int NETWORK_TYPE_UMTS = 3;/** Current network is CDMA: Either ISA or ISB*/public static final int NETWORK_TYPE_CDMA = 4;/** Current network is EVDO revision 0*/public static final int NETWORK_TYPE_EVDO_0 = 5;/** Current network is EVDO revision A*/public static final int NETWORK_TYPE_EVDO_A = 6;/** Current network is 1xRTT*/public static final int NETWORK_TYPE_1xRTT = 7;/** Current network is HSDPA */public static final int NETWORK_TYPE_HSDPA = 8;/** Current network is HSUPA */public static final int NETWORK_TYPE_HSUPA = 9;/** Current network is HSPA */public static final int NETWORK_TYPE_HSPA = ;/** Current network is iDen */public static final int NETWORK_TYPE_IDEN = ;/** Current network is EVDO revision B*/public static final int NETWORK_TYPE_EVDO_B = ;/** Current network is LTE */public static final int NETWORK_TYPE_LTE = ;/** Current network is eHRPD */public static final int NETWORK_TYPE_EHRPD = ;/** Current network is HSPA&#; */public static final int NETWORK_TYPE_HSPAP = ;

看到这个代码和注释,相信没有这方面知识的人很难看懂,都啥玩意?这注释跟没注释有啥区别?!就是让人看着更加闹心而已。所以说,注释对阅读代码的人很重要。当然这些东西可能太专业了,写这些代码的人估计是想写也不知道该怎么了,得写多大一坨啊?!我在最后会贴上一些我整理的资料,可以供大家参考一下,不是很详细,也不专业,就是大概有个印象。

Android判断用户2G/3G/4G移动数据网络(android判断应用是否在前台)

TelephonyManager 还提供了 getNetworkTypeName(int type) 的方法,这个方法可以返回一个字符串,但是信息量不大。

那怎么判断是 2G , 3G 还是 4G 网络呢?TelephonyManager 还提供了另外一个方法,getNetworkClass(int networkType) ,但这个方法被隐藏掉了,我把代码贴一下。

public static int getNetworkClass(int networkType) {switch (networkType) {case NETWORK_TYPE_GPRS:case NETWORK_TYPE_EDGE:case NETWORK_TYPE_CDMA:case NETWORK_TYPE_1xRTT:case NETWORK_TYPE_IDEN:return NETWORK_CLASS_2_G;case NETWORK_TYPE_UMTS:case NETWORK_TYPE_EVDO_0:case NETWORK_TYPE_EVDO_A:case NETWORK_TYPE_HSDPA:case NETWORK_TYPE_HSUPA:case NETWORK_TYPE_HSPA:case NETWORK_TYPE_EVDO_B:case NETWORK_TYPE_EHRPD:case NETWORK_TYPE_HSPAP:return NETWORK_CLASS_3_G;case NETWORK_TYPE_LTE:return NETWORK_CLASS_4_G;default:return NETWORK_CLASS_UNKNOWN;}}

然后下面是这几个常量的&#;。

/** Unknown network class. {@hide} */public static final int NETWORK_CLASS_UNKNOWN = 0;/** Class of broadly defined "2G" networks. {@hide} */public static final int NETWORK_CLASS_2_G = 1;/** Class of broadly defined "3G" networks. {@hide} */public static final int NETWORK_CLASS_3_G = 2;/** Class of broadly defined "4G" networks. {@hide} */public static final int NETWORK_CLASS_4_G = 3;

不知道为啥要把这些东西给隐藏起来,然道是不靠谱?!还是其他的更好的方式?!不知道,先这样吧,现在通过上面的手段,是可以知道用户用的是什么网络,当然也可以区分出来用户使用的是 2G , 3G 还是 4G 了。当然,你获取到这些数据后,你也可以推算出用户用的是哪家公司的网络,移动的,联通的,还是电信的,当然,只在中国。而且虚拟运营商开始真正上市后,这个就区分不出来是京东的,还是国美,苏宁的了,但是你可以知道你的手机号用的是联通的网还是移动的网。

最后贴上我收集整理的一些资料,可以参考一下。

GPRS 2G(2.5) General Packet Radia Service kbpsEDGE 2G(2.G) Enhanced Data Rate for GSM Evolution kbpsUMTS 3G WCDMA 联通3G Universal Mobile Telecommunication System 完整的3G移动通信技术标准CDMA 2G 电信 Code Division Multiple Access 码分多址EVDO_0 3G (EVDO 全程 CDMA 1xEV-DO) Evolution - Data Only (Data Optimized) .6kps - 2.4mbps 属于3GEVDO_A 3G 1.8mbps - 3.1mbps 属于3G过渡,3.5G1xRTT 2G CDMA 1xRTT (RTT - 无线电传输技术) kbps 2G的过渡,HSDPA 3.5G 高速下行分组接入 3.5G WCDMA High Speed Downlink Packet Access .4mbps HSUPA 3.5G High Speed Uplink Packet Access 高速上行链路分组接入 1.4 - 5.8 mbpsHSPA 3G (分HSDPA,HSUPA) High Speed Packet Access IDEN 2G Integrated Dispatch Enhanced Networks 集成数字增强型网络 (属于2G,来自维基百科)EVDO_B 3G EV-DO Rev.B .7Mbps 下行 3.5GLTE 4G Long Term Evolution FDD-LTE 和 TDD-LTE , 3G过渡,升级版 LTE Advanced 才是4G EHRPD 3G CDMA向LTE 4G的中间产物 Evolved High Rate Packet Data HRPD的升级HSPAP 3G HSPAP 比 HSDPA 快些

Android中View转换为Bitmap及getDrawingCache=null的解决方法 1.前言Android中经常会遇到把View转换为Bitmap的情形,比如,对整个屏幕视图进行截屏并生成图片;Coverflow中需要把一页一页的view转换为Bitmap、以便实现复

Android软键盘的隐藏显示研究 Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入。那么,弹出软键盘后必然会造成原有布

Android中实现上下左右都可滑动的ScrollView importjava.util.List;importandroid.content.Context;importandroid.graphics.Rect;importandroid.util.AttributeSet;importandroid.view.FocusFinder;importandroid.view.KeyEvent;importandroid.view.MotionEvent

标签: android判断应用是否在前台

本文链接地址:https://www.jiuchutong.com/biancheng/386011.html 转载请保留说明!

上一篇:Android大图片裁剪终极解决方案(中:从相册截图)(android图片裁剪)

下一篇:Android中View转换为Bitmap及getDrawingCache=null的解决方法(android view类)

  • 增值税附征怎么计算
  • 知识产权入股需要过户给对方么
  • 汇算清缴需要传什么资料
  • 技术服务的分录
  • 贷款受托支付可以给股东吗
  • 经营租赁违约金可以直接冲租赁费
  • 发生销售折让可以不开具
  • 出售多余材料会计科目
  • 加油站的成品油许可证变更过后有什么风险
  • 公司租金收入交多少税
  • 供电局预收电费
  • 公司没有收入没开发票
  • 企业重组中撤资所得税有哪些处理规则?
  • 农产品收购发票怎么抵扣
  • 建筑业增值税税率2022
  • 申报清单怎么写
  • 房地产企业开发成本计入存货
  • 发票税率开错怎么处理?
  • 24个问题
  • 增加以前年度收入是否需要更正申报年报
  • 新注册的个体户怎么开发票
  • 企业所得税哪些不可以税前扣除
  • 开票人为什么不能改
  • 增值税小规模纳税人减免增值税政策
  • 企业所得税发票虚假成本调减当年的吗
  • 工资五险一金缴费标准是多少
  • win11系统的电脑中拷贝到U盘中的文件没有了怎么解决
  • 出口退税服务
  • php数组函数,选班长
  • wordpress访客插件
  • 计提房屋租赁费的会计分录
  • 微软输入法卸载不了
  • 借股东现金会计分录
  • 财政补助收入的支付制度包括
  • 税务稽查的进项税怎么处理
  • 成本费用科目包括
  • npm ERR! code ERESOLVEnpm ERR! ERESOLVE could not resolve dependency
  • 全卷积网络fcn详解
  • 计提社保会计分录金额怎么写
  • 归还长期借款会计分录例题
  • 增值税普通发票怎么开
  • 劳务报酬可以专项附加扣除吗
  • 无偿赠送怎么做账
  • sql server s
  • 增值税进项税额转出的情况有哪些
  • 水利建设基金计费方式
  • 代扣缴纳税款会计分录
  • 行政事业单位核销固定资产的账务处理
  • 餐饮不得抵扣进项税
  • 承租方承担的税费有哪些
  • 收到社保局返还的各类社保款项应从哪个表单发起
  • 以前年度损益调整账务处理分录
  • 公司办公室装修装修
  • 应补税额是要交钱
  • 暂估费用的账务处理管理
  • 小规模纳税人年底做账
  • 新担保法2021和担保期限
  • 退资本金现金流量表走哪一项
  • 项目期间费用包括哪些费用
  • centos7怎么配置yum源
  • Windows Server 2003关闭启动后的Ctrl+Alt+Del选项和关机时的时间跟踪程序方法
  • linux find 命令详解
  • windows ftp软件
  • win10控制面板中没有防火墙
  • ScanMailOutLook.exe - ScanMailOutLook是什么进程 有什么用
  • win7搜索选项
  • linuxnamespace入门
  • w10qq图标不显示
  • unity3d颜色
  • js类继承的几种方式
  • 方块大人
  • 安卓icon图标
  • 预处理命令可以放在程序中的任何位置
  • python3解析json
  • python3遍历字典
  • 福建省国家税务局电子税务局官网入口
  • 四川国家税务局官网
  • 如何建立守信联系
  • 江苏医保给家人用怎么操作
  • 电子三方协议怎么下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设