Android获取当前手机网络类型(2g、3g、4g、wifi)以及手机型号、版本号代码

获取手机型号: android.os.Build.MODEL

获取手机的SDK版本号:android.os.Build.VERSION.SDK

获取手机当前网络类型代码如下:这是一个工具类,大家可以保存下来以后方便使用。

package com.iqtogether.qxueyou.support.util; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.telephony.TelephonyManager; /** * 获取网络连接的工具类 * Created by chengguo on 2016/3/17. */ public class IntenetUtil { //没有网络连接 public static final int NETWORN_NONE = 0; //wifi连接 public static final int NETWORN_WIFI = 1; //手机网络数据连接类型 public static final int NETWORN_2G = 2; public static final int NETWORN_3G = 3; public static final int NETWORN_4G = 4; public static final int NETWORN_MOBILE = 5; /** * 获取当前网络连接类型 * @param context * @return */ public static int getNetworkState(Context context) { //获取系统的网络服务 ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); //如果当前没有网络 if (null == connManager) return NETWORN_NONE; //获取当前网络类型,如果为空,返回无网络 NetworkInfo activeNetInfo = connManager.getActiveNetworkInfo(); if (activeNetInfo == null || !activeNetInfo.isAvailable()) { return NETWORN_NONE; } // 判断是不是连接的是不是wifi NetworkInfo wifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (null != wifiInfo) { NetworkInfo.State state = wifiInfo.getState(); if (null != state) if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) { return NETWORN_WIFI; } } // 如果不是wifi,则判断当前连接的是运营商的哪种网络2g、3g、4g等 NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (null != networkInfo) { NetworkInfo.State state = networkInfo.getState(); String strSubTypeName = networkInfo.getSubtypeName(); if (null != state) if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) { switch (activeNetInfo.getSubtype()) { //如果是2g类型 case TelephonyManager.NETWORK_TYPE_GPRS: // 联通2g case TelephonyManager.NETWORK_TYPE_CDMA: // 电信2g case TelephonyManager.NETWORK_TYPE_EDGE: // 移动2g case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: return NETWORN_2G; //如果是3g类型 case TelephonyManager.NETWORK_TYPE_EVDO_A: // 电信3g case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_EVDO_0: case TelephonyManager.NETWORK_TYPE_HSDPA: case TelephonyManager.NETWORK_TYPE_HSUPA: case TelephonyManager.NETWORK_TYPE_HSPA: case TelephonyManager.NETWORK_TYPE_EVDO_B: case TelephonyManager.NETWORK_TYPE_EHRPD: case TelephonyManager.NETWORK_TYPE_HSPAP: return NETWORN_3G; //如果是4g类型 case TelephonyManager.NETWORK_TYPE_LTE: return NETWORN_4G; default: //中国移动 联通 电信 三种3G制式 if (strSubTypeName.equalsIgnoreCase("TD-SCDMA") || strSubTypeName.equalsIgnoreCase("WCDMA") || strSubTypeName.equalsIgnoreCase("CDMA2000")) { return NETWORN_3G; } else { return NETWORN_MOBILE; } } } } return NETWORN_NONE; } }

以上内容是小编给大家介绍的Android获取当前手机网络类型(2g、3g、4g、wifi)以及手机型号、版本号的全部叙述,希望对大家有所帮助!

时间: 2024-09-22 11:12:43

Android获取当前手机网络类型(2g、3g、4g、wifi)以及手机型号、版本号代码的相关文章

android 强制2G/3G或WIFI 优先上网

android开发中有时候需要设定程序连接网络优先 2G/3G 或 WIFI,下面片段代码给出设置方法: public void setPreferredNetwork(int networkType) { ConnectivityManager connMgr = (ConnectivityManager) this.context.getSystemService("connectivity"); if (networkType == NetworkType.TYPE_MOBILE

Android判断网络类型的方法(2g,3g还是wifi)_Android

本文实例讲述了Android判断网络类型的方法.分享给大家供大家参考,具体如下: 判断网络类型是wifi,还是3G,还是2G网络,对不同的网络进行不同的处理,现将判断方法整理给大家,以供参考 说明:下面用到的数据移动2G,联通2G,联通3G,wifi我都已经测试过,暂时手上没有电信的卡,所以没有验证,有电信手机的同事,可以验证一下,验证后将结果发送给大家. ConnectivityManager connectMgr = (ConnectivityManager) this .getSystem

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

在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以在 App 的设置模块里,让用户自己选择,在 2G / 3G / 4G 网络条件下,是否允许请求一些流量比较大的数据. 通过 Android 提供的 TelephonyManager 和 ConnectivityManager 都可以获取到 NetworksInfo 对象,可以通过 getType() 获取类型,判断是 wifi 还是 mobile ,

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

在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以在 App 的设置模块里,让用户自己选择,在 2G / 3G / 4G 网络条件下,是否允许请求一些流量比较大的数据. 通过 Android 提供的 TelephonyManager 和 ConnectivityManager 都可以获取到 NetworksInfo 对象,可以通过 getType() 获取类型,判断是 wifi 还是 mobile ,

android 代码实现 wifi切换到2G,3G,4G网络

问题描述 android 代码实现 wifi切换到2G,3G,4G网络 求android 代码实现 wifi切换到2G,3G,4G网络,不知道能不能实现,求各位大神解答下, 不甚感激 解决方案 参考Android 判断用户2G/3G/4G移动数据网络开发(一)" rel="nofollow">android之wifi开发(一)android开发(12) 使用无线网络和切换到GPRS连接

Android获取本机各种类型文件的方法

介绍 本篇介绍Android获取本机各种类型文件的方法,已经封装成工具类,末尾有源码下载地址. 提示 获取音乐.视频.图片.文档等文件是需要有读取SD卡的权限的,如果是6.0以下的系统,则直接在清单文件中声明SD卡读取权限即可:如果是6.0或以上,则需要动态申请权限. FileManager的使用 FileManager是封装好的用于获取本机各类文件的工具类,使用方式如:FileManager.getInstance(Context context).getMusics(),使用的是单例模式创建

辨明联通网络标识 看懂手机是怎么显示2G/3G/4G的

4G资费经过一轮杀价下调之后消解了群众的抵制:所有LTE制式也已在国内全面铺开:现在更是有越来越多的手机终端支持TD-LTE或是FDD-LTE--爱活上周也给大家列举了一些具有代表性的联通4G产品,而更早的时候还讲解过如何正确打开4G,各位都顺利用上了最快的百兆网络吗?今天来和大家一起辨别一下手机的网络标识. 如果手机正处于前3G时代:"E" "E",即为EDGE的首字母.按照习惯,我们会把它称作是2.75G,作为2G到3G之间的过渡手段.EDGE出现的目的很明确,

Android判断用户的网络类型实例讲解(2/3/4G、wifi)_Android

很多时候需要先判断当前用户的网络,才会继续之后的一些处理逻辑.但网络类型获取这一块,我用我自己的的手机调试时遇到一些问题,这里记录一下. 一加手机一代,移动4G 网络,得到的subtype类型值为17,我查过Android 5.1的源码,它最大的值也就为16.  我拿魅族的移动4G测试的结果如下: 小米4,电信4G的测试结果如下: 魅族MX4,联通3G 还测试了其它华为移动3G/4G的情况,就我自己的手机一加返回的值有点奇怪,之后我查了一下它的参数: 当然,其它厂商:华为.小米.魅族与上面显示的

Android判断用户的网络类型实例讲解(2/3/4G、wifi)

很多时候需要先判断当前用户的网络,才会继续之后的一些处理逻辑.但网络类型获取这一块,我用我自己的的手机调试时遇到一些问题,这里记录一下. 一加手机一代,移动4G 网络,得到的subtype类型值为17,我查过Android 5.1的源码,它最大的值也就为16. 我拿魅族的移动4G测试的结果如下: 小米4,电信4G的测试结果如下: 魅族MX4,联通3G 还测试了其它华为移动3G/4G的情况,就我自己的手机一加返回的值有点奇怪,之后我查了一下它的参数: 当然,其它厂商:华为.小米.魅族与上面显示的网