Android判斷網絡類型的方法(2g,3g還是wifi)
本文實例講述了Android判斷網絡類型的方法。分享給大家供大家參考,具體如下:
判斷網絡類型是wifi,還是3G,還是2G網絡,對不同的網絡進行不同的處理,現將判斷方法整理給大家,以供參考
說明:下面用到的數據移動2G,聯通2G,聯通3G,wifi我都已經測試過,暫時手上沒有電信的卡,所以沒有驗證,有電信手機的同事,可以驗證一下,驗證后將結果發(fā)送給大家。
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
手機網絡進行詳細區(qū)分:
info.getSubtype() 這里使用 getSubtype(),不是 getType(),getType()返回的是0,或者1,是區(qū)分是手機網絡還是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 "";
}
更多關于Android相關內容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android數據庫操作技巧總結》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
- Android 判斷網絡狀態(tài)實例詳解
- Android中判斷網絡是否連接實例詳解
- Android中利用NetworkInfo判斷網絡狀態(tài)時出現空指針(NullPointerException)問題的解決方法
- Android編程判斷網絡是否可用及調用系統(tǒng)設置項的方法
- Android中判斷網絡連接狀態(tài)的方法
- Android編程判斷網絡連接是否可用的方法
- Android中判斷網絡是否可用的代碼分享
- Android中監(jiān)聽判斷網絡連接狀態(tài)的方法
- Android中判斷網絡連接是否可用及監(jiān)控網絡狀態(tài)
- Android 判斷網絡狀態(tài)及開啟網路
相關文章
Android實現軟件列表的點擊啟動另外一個程序功能【附demo源碼下載】
這篇文章主要介紹了Android實現軟件列表的點擊啟動另外一個程序功能,涉及Android針對應用程序的讀取、加載、啟動等操作相關技巧,需要的朋友可以參考下2016-07-07
Android Shader應用開發(fā)之霓虹閃爍文字效果
這篇文章主要為大家詳細介紹了Android Shader應用開發(fā)之霓虹閃爍文字效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
Android 滑動小圓點ViewPager的兩種設置方法詳解流程
Viewpager,視圖翻頁工具,提供了多頁面切換的效果。Android 3.0后引入的一個UI控件,位于v4包中。低版本使用需要導入v4包,現在我們一般不再兼容3.0及以下版本,另外使用Android studio開發(fā),默認導入v7包,v7包含了v4,所以不用導包,越來越方便了2021-11-11
Java Base64位編碼與String字符串的相互轉換,Base64與Bitmap的相互轉換實例代碼
這篇文章主要介紹了Java Base64位編碼與String字符串的相互轉換,Base64與Bitmap的相互轉換實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03
Android?掃碼槍輸入時屏蔽軟鍵盤和頂部狀態(tài)欄的解決方案
在Android設備上,使用掃碼槍時常遇到軟鍵盤和頂部狀態(tài)欄顯示問題,本文介紹了在Android 7.1.2版本上,如何通過設置inputType為none屏蔽軟鍵盤,以及通過hideStatusBar和NoActionBar方法隱藏頂部狀態(tài)欄,以優(yōu)化掃碼槍使用界面,這些方法有助于提升使用掃碼槍場景的用戶體驗2024-10-10

