Android控制wifi開關
阿新 • • 發佈:2019-01-02
認識下Wifi的幾種狀態:
1. wifiManager.WIFI_STATE_DISABLED ; (1) 關閉
2. wifiManager..WIFI_STATE_ENABLED ; (3)
開啟
3. wifiManager..WIFI_STATE_DISABLING ;(0)
關閉中
4 wifiManager..WIFI_STATE_ENABLING ; (2)
開啟中
知道這幾種狀態後就可以只用它了
首先在manifest中新增許可權:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
這很重要!!!
接下來宣告wifiManager,並獲取物件。
(本程式碼在Activity中編寫,若不在Activity中,需要在getSystemService方法前新增context.)
private WifiManager wifiManager=null;
* 獲取WIFI服務
*/
wifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE);
得到物件後直接使用就可以了,它的使用很簡單:
//關閉wifi wifiManager.setWifiEnabled(false); //開啟wifi wifiManager.setWifiEnabled(true);
注意:wifi並不能馬上關閉或者開啟,這個過程是需要一段時間的。因此如果需要在wifi開啟後執行某個操作需要等待這個開啟的過程
下面就是一個例子:等待Wifi開啟後執行一些方法
/** * wifi開啟後執行某個操作 */ private void onWifiOpenDoing(){ while(!isWifiOpened()){ try{ //為了避免程式一直while迴圈,讓它睡個100毫秒在檢測…… Thread.currentThread(); Thread.sleep(100); } catch(InterruptedException ie){ } } //在wifi開啟後執行的操作都寫在這下面 Log.i("log", "wifi已經開啟"); } /** * 判斷wifi是否已經開啟 * @return true:已開啟、false:未開啟 */ public boolean isWifiOpened(){ int status=wifiManager.getWifiState(); if (status == WifiManager.WIFI_STATE_ENABLED ) { //wifi已經開啟 return true; }else { return false; } }
這裡只是簡單描述了Wifi的開啟和關閉的方法,程式碼粗糙請勿見怪...
文章若有誤,請多指教