Android網絡類型判斷(2g、3g、wifi)

jopen 9年前發布 | 2K 次閱讀 Java Android

判斷網絡類型是wifi,還是3G,還是2G網絡,對不同

的網絡進行不同的處理,現將判斷方法整理給大家,以供參考

 

說明:下面用到的數據移動2G,聯通2G,聯通3G,wifi我都已經測試過,暫時手上

沒有電信的卡,所以沒有驗證,有電信手機的同事,可以驗證一下,驗證后將結果

發送給大家。

 

 ConnectivityManager connectMgr = (ConnectivityManager) this

        .getSystemService(Context.CONNECTIVITY_SERVICE);

 

 NetworkInfo info = connectMgr.getActiveNetworkInfo();

 

一、判斷網絡是否是wifi,在判斷之前一定要進行的非空判斷,如果沒有任何網絡

連接info ==null

info.getType() == ConnectivityManager.TYPE_WIFI

 

二、判斷是否是手機網絡

info !=null && info.getType() ==  ConnectivityManager.TYPE_MOBILE

 

手機網絡進行詳細區分:

 

info.getSubtype() 這里使用 getSubtype(),不是 getType(),getType()返回的

是0,或者1,是區分是手機網絡還是wifi

 

info.getSubtype()取值列表如下:

 

         * NETWORK_TYPE_CDMA 網絡類型為CDMA

         * NETWORK_TYPE_EDGE 網絡類型為EDGE

         * NETWORK_TYPE_EVDO_0 網絡類型為EVDO0

         * NETWORK_TYPE_EVDO_A 網絡類型為EVDOA

         * NETWORK_TYPE_GPRS 網絡類型為GPRS

         * NETWORK_TYPE_HSDPA 網絡類型為HSDPA

         * NETWORK_TYPE_HSPA 網絡類型為HSPA

         * NETWORK_TYPE_HSUPA 網絡類型為HSUPA

         * NETWORK_TYPE_UMTS 網絡類型為UMTS

 

聯通的3G為UMTS或HSDPA,移動和聯通的2G為GPRS或EDGE,電信的2G為CDMA,電信

的3G為EVDO

 

android獲取手機的ip地址

private String getPhoneIp() {        
try {  
            for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {  
                NetworkInterface intf = en.nextElement();  
                for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {  
                    InetAddress inetAddress = enumIpAddr.nextElement();  
                    if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {  
                    //if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet6Address) {  
                        return inetAddress.getHostAddress().toString();  
                    }  
                }  
            }  
        } catch (Exception e) {  
        }  
        return ""; 
    }

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!