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