最近想實現在網路斷開時取得的資料存於sqlite,然後在網路連線的時候將資料自動上傳。對於android的聯網事件,首先要註冊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()) else
這裡只新增了當前是否連線網路,如果需要區分是資料還是wifi連線,可以分別判斷。
這裡要注意,要新增訪問許可權
大體思路是這樣的,具體實現還需要進一步細化。
Android 監聽網路狀態
原文 網路狀態發生變化的時候,系統會發出 android net.conn.connectivity change 廣播 手機解鎖動作的時候,系統會發出android.intent.action.user present 廣播,我這裡為了在解鎖手機時獲取到,所以新增上手機解鎖事件廣播。註冊recei...
android監聽網路狀態
public class wificonnlisterer extends broadcastreceiver else if wifistate wifimanager.wifi state enabled 這個監聽wifi的連線狀態即是否連上了乙個有效無線路由,當上邊廣播的狀態是wifimana...
Android的網路狀態監聽
1 獲取當前網路資訊 想要獲取當前的網路資訊,就得獲取connectivitymanager,呼叫connectivitymanager的getactivenetworkinfo 方法,返回乙個networkinfo物件。這個networkinfo物件中的gettypename 方法,會返回當前的網...