android 自動連線WiFi

2021-08-22 19:07:38 字數 2728 閱讀 6218

很久沒有寫部落格了,今天記錄下做專案中發現的問題,關於自動連線wifi問題,本來在網上找了許多,發現測試下來不太好用,於是找了找原因,再次記錄一下。

先說工具類吧,包含了許多,網上也能找到類似的

public class wifiadmin 

public void setmwifimanager(wifimanager mwifimanager)

// 構造器

public wifiadmin(context context)

// 開啟wifi

public void openwifi()

}// 關閉wifi

public void closewifi()

}// 檢查當前wifi狀態

public int checkstate()

// 鎖定wifilock

public void acquirewifilock()

// 解鎖wifilock

public void releasewifilock()

}// 建立乙個wifilock

public void creatwifilock()

// 得到配置好的網路

public list getconfiguration()

// 指定配置好的網路進行連線

public void connectconfiguration(int index)

// 連線配置好的指定id的網路

mwifimanager.enablenetwork(mwificonfiguration.get(index).networkid,

true);

}public void startscan()

// 得到網路列表

public list getwifilist()

// 檢視掃瞄結果

public stringbuilder lookupscan()

return stringbuilder;

}// 得到mac位址

public string getmacaddress()

// 得到接入點的bssid

public string getbssid()

// 得到ip位址

public int getipaddress()

// 得到連線的id

public int getnetworkid()

// 得到wifiinfo的所有資訊包

public string getwifiinfo()

// 新增乙個網路並連線

public void addnetwork(wificonfiguration wcg)

// 斷開指定id的網路

public void disconnectwifi(int netid)

//然後是乙個實際應用方法,只驗證過沒有密碼的情況:

public wificonfiguration createwifiinfo(string ssid, string password, int type)

if (type == 1)// wificipher_nopass

if (type == 2) //wificipher_wep

if (type == 3) // wificipher_wpa

return config;

}public int getciphertype(string ssid) else if (capabilities.contains("wep")

|| capabilities.contains("wep")) else }}

}return -1;

}private wificonfiguration i***sits(string ssid)

}return null;

}public boolean ifwifiexsits(string ssid)

for (int i = 0; i < mwifilist.size(); i++)

}return false;

}public string gettruessid(string ssid)

for (int i = 0; i < mwifilist.size(); i++)

}return ssid;

}public boolean isconnect(string ssid)

return false;

}public wifiinfo getcurrentwifiinfo()

public boolean iswifienable()

這個大部分和網上的還是一致的,這裡記錄下。

接下來是使用

wifiadmin wifiadmin = new wifiadmin(getactivity());

if (!wifiadmin.iswifienable())

if (wifiadmin.getmwifimanager().iswifienabled())

}}

這裡一定要加獲取wifi和改變wifi的許可權!!!!!!!!!

寫到這裡差不多就要結束了,本來開開心心的去試驗,發現在6.0之前的版本是可以的,6.0之後的版本是不可以的,找了一下發現是6.0之後獲取wifi的列表,需要獲取地理位置,進而才能獲取到周圍的wifi的列表.這裡需要加申請位址位置許可權,這裡就不太多闡述了。

最後一定要加上獲取地理位置許可權

自動連線wifi

public class lhywifi 開啟wifi public void openwifi 關閉wifi public void closewifi 檢查當前wifi狀態 public int checkstate 鎖定wifilock public void acquirewifilock ...

Android開發 自動連線上wifi的Ap熱點

public class mainactivity extends activity else ht new handlerthread ht ht.start mhandler new myhandler message msg mhandler.obtainmessage bundle bund...

實現自動WiFi連線

1,想實現連線到指定的wifi網路嗎?其實這個不是很難,可這個一直困擾了我很長時間,今天終於找到了原因,因為,我之前的配置就是錯誤的,所以,導致無法連線到指定的無線網路。2,實現方法 wificonfiguration config new wificonfiguration config.allo...