Android中wifi與資料流量的切換監聽

2021-07-24 06:57:33 字數 1673 閱讀 1975

connectivitymanager類

connectivitymanager 是乙個網路連線的管理類,裡面封裝了網路請求的詳細資訊,包括wifi與移動資料流量的開關狀態,正在開啟與關閉的狀態,連線狀態等等,很適合做網路監聽。還有乙個類wifimanager ,這個類專門用來做wifi的監聽,他的監聽效果比connectivitymanager更加詳細豐富,可以檢測但是對流量沒法生效。這裡使用connectivitymanager 就足夠了。

一、註冊廣播

寫乙個類繼承自broadcastreceiver。

@override

public void onreceive(context context, intent intent)

//wifi連線上時

if (wifi.isconnected())

}//斷網時

if (!netmanager.getgrps().isconnected() || !netmanager.getgrps().isconnected())

}

二、彈窗

彈窗一般用四種常用的方式:

1、使用popupwindow

2、使用dialog

3、windowmanager

4、系統彈窗

一般的彈窗需要依附於activity,在activity中彈窗,但是在服務中,不能簡單的使用這種方式,一般是採用系統的彈窗,他的優先順序很高,覆蓋於應用介面的最高層,並且要設定settype(windowmanager.layoutparams.type_system_alert),要不然會崩潰的。

private void switchnetwork(final context context) 

});alertdialog dialog = builder.create();

// 需要把對話方塊的型別設為type_system_alert,否則對話方塊無法在廣播接收器裡彈出

dialog.getwindow().settype(windowmanager.layoutparams.type_system_alert);

dialog.show();

isshow = false;

}

三、網路切換

wifi的網路切換比較容易,直接設定setwifienabled就可以完成切換,而資料流量的切換比較麻煩,他的方法是私有的,無法呼叫,我們可以通過反射,找到他的方法進行呼叫:具體看**

private void controlnetwork(context context)  catch (exception e) 

}

在清單檔案中註冊廣播

新增許可權:

以上**很詳細的描述了網路切換的實時檢測,更加詳細豐富的就不在這裡寫出來了。

android中wifi原理詳解 轉

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!二 wifi模組的初始化 在 systemserver 啟動的時候,會生成乙個connectivityservice的例項,try catch throwable e connectivityservice 的建構函式會建立wifiservice,...

Android中如何使用WIFI來連線ADB

有的時候,我們限於種種原因,無法使用usb來連線裝置進行除錯,此時,可以通過wifi連線來進行。首先開啟手機的wifi設定,使其連線到網路。然後,需要在手機上對adb連線埠進行設定,這裡需要有root許可權的終端 terminal 應用,這種型別的應用在各個market都有不少,選擇乙個適合的就可以...

Android 中監聽WIFI連線狀態變化

android應用開發過程中通過註冊廣播監聽wifi狀態變化 廣播中獲取的action為wifimanager.wifi state changed action用於監聽android wifi開啟或關閉的狀態,wifimanager.network state changed action用於判斷...