Android手机网络NetWorkType对应的常量值
2018-01-31 14:25
405 查看
Android手机网络NetWorkType对应的常量值
本篇是为了方便以后使用,无需再百度
这里写图片描述
这是对应的参数类型
/**
* GPRS 2G(2.5) General Packet Radia Service 114kbps
* EDGE 2G(2.75G) Enhanced Data Rate for GSM Evolution 384kbps
* UMTS 3G WCDMA 联通3G Universal MOBILE Telecommunication System 完整的3G移动通信技术标准
* CDMA 2G 电信 Code Division Multiple Access 码分多址
* EVDO_0 3G (EVDO 全程 CDMA2000 1xEV-DO) Evolution - Data Only (Data Optimized) 153.6kps - 2.4mbps 属于3G
* EVDO_A 3G 1.8mbps - 3.1mbps 属于3G过渡,3.5G
* 1xRTT 2G CDMA2000 1xRTT (RTT - 无线电传输技术) 144kbps 2G的过渡,
* HSDPA 3.5G 高速下行分组接入 3.5G WCDMA High Speed Downlink Packet Access 14.4mbps
* HSUPA 3.5G High Speed Uplink Packet Access 高速上行链路分组接入 1.4 - 5.8 mbps
* HSPA 3G (分HSDPA,HSUPA) High Speed Packet Access
* IDEN 2G Integrated Dispatch Enhanced Networks 集成数字增强型网络 (属于2G,来自维基百科)
* EVDO_B 3G EV-DO Rev.B 14.7Mbps 下行 3.5G
* LTE 4G Long Term Evolution FDD-LTE 和 TDD-LTE , 3G过渡,升级版 LTE Advanced 才是4G
* EHRPD 3G CDMA2000向LTE 4G的中间产物 Evolved High Rate Packet Data HRPD的升级
* HSPAP 3G HSPAP 比 HSDPA 快些
*
* @return {@link NetWorkType}
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
自己写的判断网络的工具类
package me.anany.weikandian.utils;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.telephony.TelephonyManager;
import android.util.Log;
import java.lang.reflect.Method;
/**
* Created by houshuai
*
* Email:houshuai0816@gmail.com
*/
public class NetworkUtil {
}
本篇是为了方便以后使用,无需再百度
这里写图片描述
这是对应的参数类型
/**
* GPRS 2G(2.5) General Packet Radia Service 114kbps
* EDGE 2G(2.75G) Enhanced Data Rate for GSM Evolution 384kbps
* UMTS 3G WCDMA 联通3G Universal MOBILE Telecommunication System 完整的3G移动通信技术标准
* CDMA 2G 电信 Code Division Multiple Access 码分多址
* EVDO_0 3G (EVDO 全程 CDMA2000 1xEV-DO) Evolution - Data Only (Data Optimized) 153.6kps - 2.4mbps 属于3G
* EVDO_A 3G 1.8mbps - 3.1mbps 属于3G过渡,3.5G
* 1xRTT 2G CDMA2000 1xRTT (RTT - 无线电传输技术) 144kbps 2G的过渡,
* HSDPA 3.5G 高速下行分组接入 3.5G WCDMA High Speed Downlink Packet Access 14.4mbps
* HSUPA 3.5G High Speed Uplink Packet Access 高速上行链路分组接入 1.4 - 5.8 mbps
* HSPA 3G (分HSDPA,HSUPA) High Speed Packet Access
* IDEN 2G Integrated Dispatch Enhanced Networks 集成数字增强型网络 (属于2G,来自维基百科)
* EVDO_B 3G EV-DO Rev.B 14.7Mbps 下行 3.5G
* LTE 4G Long Term Evolution FDD-LTE 和 TDD-LTE , 3G过渡,升级版 LTE Advanced 才是4G
* EHRPD 3G CDMA2000向LTE 4G的中间产物 Evolved High Rate Packet Data HRPD的升级
* HSPAP 3G HSPAP 比 HSDPA 快些
*
* @return {@link NetWorkType}
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
自己写的判断网络的工具类
package me.anany.weikandian.utils;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.telephony.TelephonyManager;
import android.util.Log;
import java.lang.reflect.Method;
/**
* Created by houshuai
*
* Email:houshuai0816@gmail.com
*/
public class NetworkUtil {
private static final String TAG = NetworkUtil.class.getSimpleName(); /** * 获取ConnectivityManager */ public static ConnectivityManager getConnectivityManager(Context context) { return (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); } /** * 获取ConnectivityManager */ public static TelephonyManager getTelephonyManager(Context context) { return (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); } // //public enum NetSubType { // NONE(1), // MOBILE(2), // WIFI(4), // OTHER(8); // // NetType(int value) { // this.value = value; // } // // public int value; //} /** * 判断网络连接是否有效(此时可传输数据)。 * * @return boolean 不管wifi,还是mobile net,只有当前在连接状态(可有效传输数据)才返回true,反之false。 */ public static boolean isConnected(Context context) { NetworkInfo net = getConnectivityManager(context).getActiveNetworkInfo(); return net != null && net.isConnected(); } /** * 判断有无网络正在连接中(查找网络、校验、获取IP等)。 * * @return boolean 不管wifi,还是mobile net,只有当前在连接状态(可有效传输数据)才返回true,反之false。 */ public static boolean isConnectedOrConnecting(Context context) { NetworkInfo[] nets = getConnectivityManager(context).getAllNetworkInfo(); if (nets != null) { for (NetworkInfo net : nets) { if (net.isConnectedOrConnecting()) { return true; } } } return false; } public static NetType getConnectedType(Context context) { NetworkInfo net = getConnectivityManager(context).getActiveNetworkInfo(); if (net != null) { switch (net.getType()) { case ConnectivityManager.TYPE_WIFI: return NetType.WIFI; case ConnectivityManager.TYPE_MOBILE: return NetType.MOBILE; default: return NetType.OTHER; } } return NetType.NONE; } /** * 是否存在有效的WIFI连接 */ public static boolean isWifiConnected(Context context) { NetworkInfo net = getConnectivityManager(context).getActiveNetworkInfo(); return net != null && net.getType() == ConnectivityManager.TYPE_WIFI && net.isConnected(); } /** * 是否存在有效的移动连接 * * @return boolean */ public static boolean isMobileConnected(Context context) { NetworkInfo net = getConnectivityManager(context).getActiveNetworkInfo(); return net != null && net.getType() == ConnectivityManager.TYPE_MOBILE && net.isConnected(); } /** * 检测网络是否为可用状态 */ public static boolean isAvailable(Context context) { return isWifiAvailable(context) || (isMobileAvailable(context) && isMobileEnabled(context)); } /** * 判断是否有可用状态的Wifi,以下情况返回false: * 1. 设备wifi开关关掉; * 2. 已经打开飞行模式; * 3. 设备所在区域没有信号覆盖; * 4. 设备在漫游区域,且关闭了网络漫游。 * * @return boolean wifi为可用状态(不一定成功连接,即Connected)即返回ture */ public static boolean isWifiAvailable(Context context) { NetworkInfo[] nets = getConnectivityManager(context).getAllNetworkInfo(); if (nets != null) { for (NetworkInfo net : nets) { if (net.getType() == ConnectivityManager.TYPE_WIFI) { return net.isAvailable(); } } } return false; } /** * 判断有无可用状态的移动网络,注意关掉设备移动网络直接不影响此函数。 * 也就是即使关掉移动网络,那么移动网络也可能是可用的(彩信等服务),即返回true。 * 以下情况它是不可用的,将返回false: * 1. 设备打开飞行模式; * 2. 设备所在区域没有信号覆盖; * 3. 设备在漫游区域,且关闭了网络漫游。 * * @return boolean */ public static boolean isMobileAvailable(Context context) { NetworkInfo[] nets = getConnectivityManager(context).getAllNetworkInfo(); if (nets != null) { for (NetworkInfo net : nets) { if (net.getType() == ConnectivityManager.TYPE_MOBILE) { return net.isAvailable(); } } } return false; } /** * 设备是否打开移动网络开关 * * @return boolean 打开移动网络返回true,反之false */ public static boolean isMobileEnabled(Context context) { try { Method getMobileDataEnabledMethod = ConnectivityManager.class.getDeclaredMethod("getMobileDataEnabled"); getMobileDataEnabledMethod.setAccessible(true); return (Boolean) getMobileDataEnabledMethod.invoke(getConnectivityManager(context)); } catch (Exception e) { e.printStackTrace(); } // 反射失败,默认开启 return true; } /** * 打印当前各种网络状态 * * @return boolean */ public static boolean printNetworkInfo(Context context) { ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null) { NetworkInfo in = connectivity.getActiveNetworkInfo(); Log.i(TAG, "-------------$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-------------"); Log.i(TAG, "getActiveNetworkInfo: " + in); NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) { for (int i = 0; i < info.length; i++) { // if (info[i].getType() == ConnectivityManager.TYPE_WIFI) { Log.i(TAG, "NetworkInfo[" + i + "]isAvailable : " + info[i].isAvailable()); Log.i(TAG, "NetworkInfo[" + i + "]isConnected : " + info[i].isConnected()); Log.i(TAG, "NetworkInfo[" + i + "]isConnectedOrConnecting : " + info[i].isConnectedOrConnecting()); Log.i(TAG, "NetworkInfo[" + i + "]: " + info[i]); // } } Log.i(TAG, "\n"); } else { Log.i(TAG, "getAllNetworkInfo is null"); } } return false; } /** * get connected network type by {@link ConnectivityManager} * <p> * such as WIFI, MOBILE, ETHERNET, BLUETOOTH, etc. * * @return {@link ConnectivityManager#TYPE_WIFI}, {@link ConnectivityManager#TYPE_MOBILE}, * {@link ConnectivityManager#TYPE_ETHERNET}... */ public static int getConnectedTypeINT(Context context) { NetworkInfo net = getConnectivityManager(context).getActiveNetworkInfo(); if (net != null) { Log.i(TAG, "NetworkInfo: " + net.toString()); return net.getType(); } return -1; } /** * get network type by {@link TelephonyManager} * <p> * such as 2G, 3G, 4G, etc. * * @return {@link TelephonyManager#NETWORK_TYPE_CDMA}, {@link TelephonyManager#NETWORK_TYPE_GPRS}, * {@link TelephonyManager#NETWORK_TYPE_LTE}... */ public static int getTelNetworkTypeINT(Context context) { return getTelephonyManager(context).getNetworkType(); } /** * GPRS 2G(2.5) General Packet Radia Service 114kbps * EDGE 2G(2.75G) Enhanced Data Rate for GSM Evolution 384kbps * UMTS 3G WCDMA 联通3G Universal MOBILE Telecommunication System 完整的3G移动通信技术标准 * CDMA 2G 电信 Code Division Multiple Access 码分多址 * EVDO_0 3G (EVDO 全程 CDMA2000 1xEV-DO) Evolution - Data Only (Data Optimized) 153.6kps - 2.4mbps 属于3G * EVDO_A 3G 1.8mbps - 3.1mbps 属于3G过渡,3.5G * 1xRTT 2G CDMA2000 1xRTT (RTT - 无线电传输技术) 144kbps 2G的过渡, * HSDPA 3.5G 高速下行分组接入 3.5G WCDMA High Speed Downlink Packet Access 14.4mbps * HSUPA 3.5G High Speed Uplink Packet Access 高速上行链路分组接入 1.4 - 5.8 mbps * HSPA 3G (分HSDPA,HSUPA) High Speed Packet Access * IDEN 2G Integrated Dispatch Enhanced Networks 集成数字增强型网络 (属于2G,来自维基百科) * EVDO_B 3G EV-DO Rev.B 14.7Mbps 下行 3.5G * LTE 4G Long Term Evolution FDD-LTE 和 TDD-LTE , 3G过渡,升级版 LTE Advanced 才是4G * EHRPD 3G CDMA2000向LTE 4G的中间产物 Evolved High Rate Packet Data HRPD的升级 * HSPAP 3G HSPAP 比 HSDPA 快些 * * @return {@link NetWorkType} */ public static NetWorkType getNetworkType(Context context) { int type = getConnectedTypeINT(context); switch (type) { case ConnectivityManager.TYPE_WIFI: return NetWorkType.WIFI; case ConnectivityManager.TYPE_MOBILE: case ConnectivityManager.TYPE_MOBILE_DUN: case ConnectivityManager.TYPE_MOBILE_HIPRI: case ConnectivityManager.TYPE_MOBILE_MMS: case ConnectivityManager.TYPE_MOBILE_SUPL: int teleType = getTelephonyManager(context).getNetworkType(); switch (teleType) { case TelephonyManager.NETWORK_TYPE_GPRS: case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_CDMA: case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: return NetWorkType.NET_2_G; case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_EVDO_0: case TelephonyManager.NETWORK_TYPE_EVDO_A: 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 NetWorkType.NET_3_G; case TelephonyManager.NETWORK_TYPE_LTE: return NetWorkType.NET_4_G; default: return NetWorkType.UN_KNOWN; } default: return NetWorkType.UN_KNOWN; } } public enum NetType { NONE(1), MOBILE(2), WIFI(4), OTHER(8); public int value; NetType(int value) { this.value = value; } } public enum NetWorkType { UN_KNOWN(-1), WIFI(1), NET_2_G(2), NET_3_G(3), NET_4_G(4); public int value; NetWorkType(int value) { this.value = value; } }
}
相关文章推荐
- Android手机网络NetWorkType对应的常量值
- How to get camped network type name - Android应用如何获得Phone当前注册的网络类型
- android 6.0 优先网络类型设置流程(Preferrred network type)
- Android network 手机网络
- android 6.0 优先网络类型设置流程(Preferrred network type)
- network is available on Android and iOS?(安卓和IOS手机的网络状态)
- android实用工具类分享(获取内存/检查网络/屏幕高度/手机分辨率)
- 记录-Android根据手机gps或者网络获取当前位置
- android开发工具类之获得WIFI IP地址或者手机网络IP
- WIN7下建立临时网络 共享wlan给android手机使用
- 我的手机是三星GTS-5570,现在开机就显示com.android.phone进程意外停止,连网络也不能连接
- adb获取android手机系统版本,已对应的api版本和硬件相关信息
- Android之监测手机网络状态的广播
- Android手机的抓网络包方法
- Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)
- Android训练课程(Android Training) - 使用Volley传输网络数据(Transmitting Network Data Using Volley)
- Ubuntu使用Charles监控Android手机网络请求
- android手机网络状态监听,判断手机连接的是移动网络还是wifi等
- android开发中控件editText对应的inputType的类型总结