天天看點

Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理

擷取網絡資訊需要在AndroidManifest.xml檔案中加入相應的權限。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

1)判斷是否有網絡連接配接

Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理
Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理

2)判斷WIFI網絡是否可用

Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理
Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理

3)判斷MOBILE網絡是否可用

Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理
Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理

 4)擷取目前網絡連接配接的類型資訊

Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理
Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理

在開發android應用時,涉及到要進行網絡通路,時常需要進行網絡狀态的檢查,以提供給使用者必要的提醒。一般可以通過ConnectivityManager來完成該工作。

ConnectivityManager有四個主要任務:

1、監聽手機網絡狀态(包括GPRS,WIFI, UMTS等)

2、手機狀态發生改變時,發送廣播

3、當一個網絡連接配接失敗時進行故障切換

4、為應用程式提供可以擷取可用網絡的高精度和粗糙的狀态

當我們要在程式中監聽網絡狀态時,隻要一下幾個步驟即可:

1、定義一個Receiver重載其中的onReceive函數,在其中完成所需要的功能,如根據WIFI和GPRS是否斷開來改變空間的外觀

Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理
Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理

2、在适當的地方注冊Receiver,可以在程式中注冊,在onCreate中調用如下函數即可:

3、在适當時取消注冊Receiver,可以在程式中取消,在onDestroye中調用如下函數即可:

Ps:網上還有很多關于使用TelephonyManager 的方法的,方法如下(但是我試了好幾次都有問題,如每次第一次進入一個Activity時會自動收到網絡斷開的信号,每次網絡狀态改變時收到多次回調且狀态不正确。不知道有什麼要注意的地方,求指點!)

Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理
Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理

至于第二種方法,本人并沒有去嘗試過。第一種方式還是比較好用,如果要程式隐藏在背景的話,建議開個service,将BroadcastReceiver注冊在service,但不要忘了取消注冊。

在測試中遇到過這樣的狀況,将一個目前連接配接wifi的路由裝置關閉,但是程式并沒有捕捉到unconnect network,可能是因為手機裝置立刻連接配接另一個路由裝置了。

Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理
Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理

上面這個方法就是判斷網絡是否連接配接的代碼,傳回true表示有網絡,傳回false表示無網絡。 在Android網絡應用程式開發中,經常要判斷網絡連接配接是否可用,是以經常有必要監聽網絡狀态的變化。android的網絡狀态監聽可以用BroadcastReceiver來接收網絡狀态改變的廣 播,具體實作如下:

Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理
Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理

在Activity的onCreate中:

Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理
Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理

很多朋友在android開發中,都會遇到手機網絡類型判斷,因為就目前的android平台手機來說:可能會存在4中狀态

      1.無網絡(這種狀态可能是因為手機停機,網絡沒有開啟,信号不好等原因)

      2.使用WIFI上網

      3.CMWAP(中國移動代理)

      4.CMNET上網

 這四種狀态,如果沒有網絡,肯定是無法請求Internet了,如果是wap就需要為手機添加中國移動代理,關于為手機添加中國移動的代理,請到

http://www.2cto.com/kf/201111/112100.html 這裡寫有關于添加中國移動代理的例子!

下面是網絡判斷的方法:

Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理
Android網絡連接配接判斷與處理Android網絡連接配接判斷與處理

因為擷取的是服務對象,是以這個網絡狀态都是時時重新整理的,是以我們隻需要得到網絡狀态就可以了!

學習在于積累,希望和大家一起分享

繼續閱讀