/*** 区分2g/3g/4gGPRG网络* @author Bubble * */import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.provider.SyncStateContract.Constants;
import android.telephony.TelephonyManager;public class GPRSNetType {private static final int NETWORK_TYPE_UNAVAILABLE = -1;private static final int NETWORK_TYPE_WIFI = -101;private static final int NETWORK_CLASS_WIFI = -101;private static final int NETWORK_CLASS_UNAVAILABLE = -1;/** Unknown network class. */private static final int NETWORK_CLASS_UNKNOWN = 0;private static final int NETWORK_CLASS_2_G = 1;private static final int NETWORK_CLASS_3_G = 2;private static final int NETWORK_CLASS_4_G = 3;// 适配低版本手机public static final int NETWORK_TYPE_UNKNOWN = 0;public static final int NETWORK_TYPE_GPRS = 1;public static final int NETWORK_TYPE_EDGE = 2;public static final int NETWORK_TYPE_UMTS = 3;public static final int NETWORK_TYPE_CDMA = 4;public static final int NETWORK_TYPE_EVDO_0 = 5;public static final int NETWORK_TYPE_EVDO_A = 6;public static final int NETWORK_TYPE_1xRTT = 7;public static final int NETWORK_TYPE_HSDPA = 8;public static final int NETWORK_TYPE_HSUPA = 9;public static final int NETWORK_TYPE_HSPA = 10;public static final int NETWORK_TYPE_IDEN = 11;public static final int NETWORK_TYPE_EVDO_B = 12;public static final int NETWORK_TYPE_LTE = 13;public static final int NETWORK_TYPE_EHRPD = 14;public static final int NETWORK_TYPE_HSPAP = 15;/*** * @param context* @return*/static int getNetworkClass(Context context) {int networkType = NETWORK_TYPE_UNKNOWN;try {final NetworkInfo network = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();if (network != null && network.isAvailable()&& network.isConnected()) {int type = network.getType();if (type == ConnectivityManager.TYPE_WIFI) {networkType = NETWORK_TYPE_WIFI;} else if (type == ConnectivityManager.TYPE_MOBILE) {TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);networkType = telephonyManager.getNetworkType();}} else {networkType = NETWORK_TYPE_UNAVAILABLE;}} catch (Exception ex) {ex.printStackTrace();}return getNetworkClassByType(networkType);}/*** 根据网络类型区分2g/3g/4g* @param networkType* @return*/private static int getNetworkClassByType(int networkType) {switch (networkType) {case NETWORK_TYPE_UNAVAILABLE:return NETWORK_CLASS_UNAVAILABLE;case NETWORK_TYPE_WIFI:return NETWORK_CLASS_WIFI;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_3G case NETWORK_TYPE_LTE:return NETWORK_CLASS_4G;default:return NETWORK_CLASS_UNKNOWN;}}/*** 获取当前的网络类型* * @param context* @return*/public static String getCurrentNetworkType(Context context) {int networkClass = getNetworkClass(context);String type = "未知";switch (networkClass) {case NETWORK_CLASS_UNAVAILABLE:type = "无";break;case NETWORK_CLASS_WIFI:type = "Wi-Fi";break;case Constant.NETWORK_CLASS_2G:type = "2G";break;case Constant.NETWORK_CLASS_3G:type = "3G";break;case Constant.NETWORK_CLASS_4G:type = "4G";break;case Constant.NETWORK_CLASS_RESERVE0:type = "未知";break;}return type;}}

GPRS 区分2g/3g/4g网络相关推荐

  1. 如何区分2G/3G/4G基站

    如何根据一个基站的lac和cellid区分这个基站是2G,3G还是4G基站,这里做一下总结. 国内运营商在建网初期就对LAC代码按省进行了分配,每个省/自治区/直辖市都分配到了一定数量的LAC代码区间 ...

  2. 2G|3G|4G网络速率知识普及

    本文介绍第二代(2G)移动通信系统和第三代(3G)移动通信系统常见制式基础知识,主要有2G(GSM900/EGSM/DCS1800/PCS1800).3G(CDMA2000/TD-SCDMA/WCDM ...

  3. (转)Android 判断用户2G/3G/4G移动数据网络

    在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需(要根据用户当前网络情况来做一些调整的,也可以在 App 的设置模块里,让用户自己选择,在 2G ...

  4. Android 判断用户2G/3G/4G移动数据网络

    2019独角兽企业重金招聘Python工程师标准>>> Android 判断用户2G/3G/4G移动数据网络 在做 Android App 的时候,为了给用户省流量,为了不激起用户的 ...

  5. android 判断2g 3g 4g,如何确定网络类型是2G,3G还是4G

    根据此处的Android开发人员文档和Wikipedia链接,我给出了注释并定义了网络类型.请检查注释中的链接. 您可以使用getNetworkType获取网络类型. public class Com ...

  6. 什么是1G/2G/3G/4G/5G

    什么是1G/2G/3G/4G/5G 参考:http://www.360doc.com/content/14/1213/22/5458405_432718054.shtml 介绍 1G:表示第一代移动通 ...

  7. 一文让你读懂——什么是1G,2G,3G,4G,5G

    一文让你读懂--什么是1G,2G,3G,4G,5G 无线通信日新月异,现在我们已经进入到了5G时代.5G代表了更快的速度,更低的延时,更多的链接数,它在人们的生活中所占有的比重和所起的作用越来越大.那 ...

  8. 中国电信频段测试软件,中国四大运营商2G/3G/4G/5G工作频率以及网络制式

    原标题:中国四大运营商2G/3G/4G/5G工作频率以及网络制式 中国四大运营商2G/3G/4G/5G工作频率以及网络制式,值得收藏! 中国移动 1. 900MHz(Band8),889~904/93 ...

  9. [转帖]三大运营商2G/3G/4G频率分配和网络制式

    三大运营商2G/3G/4G频率分配和网络制式 https://blog.csdn.net/weixin_38759340/article/details/80890142 经过二十多年长期的发展,我国 ...

  10. NSA组网下2G/3G/4G/5G系统协同策略的研究

    [摘  要]从NSA组网原理出发,以中国移动的现网实际情况和需求为例,通过分析不同系统的特点,探讨了NSA模式下2G/3G/4G/5G组网下不同网络间的协同策略.经测试验证,该套策略对5G网络的覆盖. ...

最新文章

  1. Windows Server 2003 R2 修复Windows Server 2003
  2. r语言 整理、处理数据步骤_R语言之数据处理(一)
  3. VTK:几何对象之RegularPolygonSource
  4. Java序列化、反序列化
  5. Java多线程——重入锁ReentrantLock源码阅读
  6. vs 正则表达式转大写_liunx之通配符amp;正则表达式
  7. linux下 java 文本_Java中如何将输入的信息写入文本中
  8. 【CV】如何使用Tensorflow提供的Object Detection API--4--开始训练模型
  9. 版本控制软件 perforce 与 git
  10. 基于Java的超级玛丽游戏的设计与实现(含源文件)
  11. word使用技巧---插入图片显示不全的解决方案
  12. 解决笔记本IPS屏幕发黄问题
  13. Android中自定义注解处理器
  14. python try: except: 捕获到的异常输出到 log文件
  15. Matlab-稀疏矩阵
  16. 高等代数:4 矩阵的运算
  17. 灌篮高手怎么找回原来的服务器,灌篮高手手游异常登陆、封号补偿及领取方式介绍...
  18. 小学生计算机课的演讲稿,小学生课前三分钟演讲稿范文5篇
  19. c语言基础循环练习题,C语言练习题:循环部分
  20. LINUX系统下ORACLE19C客户端安装步骤

热门文章

  1. SSID、BSSID、ESSID的区别
  2. 2020年最新版CSDN博客排名第一名的博客
  3. 分组交换(Packet Switching)和线路交换(Circuit Switching)
  4. 深入理解Flash的沙箱 – Application Domains
  5. 计算机室对计算机网络系统,计算机网络与实验室管理系统建设
  6. 推荐系统(一):不了解推荐系统,基本在被out的队列,岌岌可危
  7. 两台计算机如何共享文档,两台电脑怎么共享文件夹?
  8. 【总结】1050- Code Review流程规范
  9. 关联规则:一款在策略挖掘中必不可少的算法
  10. VirtualBox虚拟机安装