【Android】Android 監聽網絡狀態+源代碼


想要獲取Android的聯網事件

首先要 注冊Receiver

<receiver
   android:name="com.ray.ray.receiver.ConnectionChangeReceiver"
   android:label="NetworkConnection" >
   <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        <action android:name="android.intent.action.USER_PRESENT" />
   </intent-filter>
</receiver>

網絡狀態發生變化的時候,系統會發出 android.net.conn.CONNECTIVITY_CHANGE 廣播

手機解鎖動作的時候,系統會發出android.intent.action.USER_PRESENT 廣播,我這里為了在解鎖手機時獲取到,所以添加上手機解鎖事件廣播。

注冊Receiver后,就可以在ConnctionChangeReceiver中接收到網絡狀態變化和手機解鎖動作的廣播

其次,我們處理接收到的廣播,實現方法如下,在onReceive中添加網絡狀態判斷

ConnectivityManager connectMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

ConnectivityManager 獲取當前系統服務信息
getNetworkInfo 分別獲取 類型為MOBILE和WIFI兩種聯網方式的信息。

通過判斷mobNetInfo.isConnected() 和 wifiNetInfo.isConnected() 返回的Boolean 布爾值來確定當前聯網狀態。

if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {// unconnect network
} else {// connect network
}

這里只添加了當前是否連接網絡,如果需要區分是數據還是WIFI連接,可以分別判斷。

這里要注意,添加Android permission 訪問權限 

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

 

以上就是Android 監聽網絡狀態的代碼實現過程

需要獲取源代碼的朋友,可以通過下面兩種方式獲取

(1)下載地址 http://download.csdn.net/detail/fnext/5228714

(2)請在評論中填寫郵件地址,會通過郵箱發送源碼。

 

//////////////////////////////////////////////

原創聲明 轉載請注明

本文出自 Ray-Ray的博客

文章地址 http://www.cnblogs.com/rayray/archive/2013/03/25/2965474.html 

感謝大家的推薦和收藏

你的支持! 我們的動力!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM