android判断正在使用的网络类型 0.不知道网络类型;1、2G;2、3G;3、4g;4、wifi...

判断正在使用的网络类型 0.不知道网络类型;1、2G;2、3G;3、4g;4、wifi

 1     
 2     /** Unknown network class. {@hide} */
 3     public static final String NETWORK_CLASS_UNKNOWN = "0";
 4     /** Class of broadly defined "2G" networks. {@hide} */
 5     public static final String NETWORK_CLASS_2_G = "1";
 6     /** Class of broadly defined "3G" networks. {@hide} */
 7     public static final String NETWORK_CLASS_3_G = "2";
 8     /** Class of broadly defined "4G" networks. {@hide} */
 9     public static final String NETWORK_CLASS_4_G = "3";
10     /** Class of broadly defined "wifi" networks. {@hide} */
11     public static final String NETWORK_CLASS_WIFI = "4";
12     /**
13      * 判断正在使用的网络类型 0.不知道网络类型;1、2G;2、3G;3、4g;4、wifi
14      * @param context
15      * @return
16      */
17     public static String getNet(Context context) {
18         try {
19             ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
20             State mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
21             State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
22             if(mobile == State.CONNECTED||mobile==State.CONNECTING) {
23                 NetworkInfo info = manager.getActiveNetworkInfo();
24                 int type = info.getSubtype();
25                 switch (type) {
26                 case TelephonyManager.NETWORK_TYPE_GPRS:
27                 case TelephonyManager.NETWORK_TYPE_EDGE:
28                 case TelephonyManager.NETWORK_TYPE_CDMA:
29                 case TelephonyManager.NETWORK_TYPE_1xRTT:
30                 case TelephonyManager.NETWORK_TYPE_IDEN:
31                     return NETWORK_CLASS_2_G;
32                 case TelephonyManager.NETWORK_TYPE_UMTS:
33                 case TelephonyManager.NETWORK_TYPE_EVDO_0:
34                 case TelephonyManager.NETWORK_TYPE_EVDO_A:
35                 case TelephonyManager.NETWORK_TYPE_HSDPA:
36                 case TelephonyManager.NETWORK_TYPE_HSUPA:
37                 case TelephonyManager.NETWORK_TYPE_HSPA:
38                 case TelephonyManager.NETWORK_TYPE_EVDO_B:
39                 case TelephonyManager.NETWORK_TYPE_EHRPD:
40                 case TelephonyManager.NETWORK_TYPE_HSPAP:
41                     return NETWORK_CLASS_3_G;
42                 case TelephonyManager.NETWORK_TYPE_LTE:
43                     return NETWORK_CLASS_4_G;
44                 default:
45                     return NETWORK_CLASS_UNKNOWN;
46                 }
47             }
48             else if(wifi == State.CONNECTED||wifi==State.CONNECTING) {
49                 return NETWORK_CLASS_WIFI;
50             }
51         } catch (Exception e) {
52             LogUtil.e(tag, e);
53             return NETWORK_CLASS_UNKNOWN;
54         }
55         return NETWORK_CLASS_UNKNOWN;
56     }

 

转载于:https://www.cnblogs.com/code4app/p/4444320.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值