想要獲取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
感謝大家的推薦和收藏
你的支持! 我們的動力!