WIFI管理类
![复制代码](https://i-blog.csdnimg.cn/blog_migrate/48304ba5e6f9fe08f3fa1abda7d326ab.gif)
class WifiConnector {
private ExecutorService executors;
Handler mHandler;
WifiManager wifiManager;
WifiConnector(WifiManager wifiManager, Handler handler) {
this.wifiManager = wifiManager;
executors= Executors.newSingleThreadExecutor();
mHandler=handler;
}
private void sendMsg(String info) {
if (mHandler != null) {
Message msg = new Message();
msg.obj = info;
mHandler.sendMessage(msg);
}
}
//WIFICIPHER_WEP是WEP ,WIFICIPHER_WPA是WPA,WIFICIPHER_NOPASS没有密码
public enum WifiCipherType {
WIFICIPHER_WEP, WIFICIPHER_WPA, WIFICIPHER_NOPASS, WIFICIPHER_INVALID
}
// 打开wifi
public boolean openWifi() {
return !wifiManager.isWifiEnabled() && wifiManager.setWifiEnabled(true);
}
// 关闭wifi
public void closeWifi() {
if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
}
}
//断开当前连接
public boolean disconnectWifi() {
return wifiManager.disconnect();
}
//扫描wifi信息
public void scanWifi(){
if(wifiManager.isWifiEnabled()){
//扫描热点 如果扫描不到热点 把targetSdkVersion改成22
wifiManager.startScan();
}
}
//获取热点信息 ScanResult.SSID 获取热点名字 ScanResult.level 获取热点信号强度
public List<ScanResult> scanResultsWifi(){
if(wifiManager.isWifiEnabled()){
//扫描热点 如果扫描不到热点 把targetSdkVersion改成22
return wifiManager.getScanResults();
}
return null;
}
// 连接指定wifi
public void connect(String ssid, String password, WifiCipherType type) {
executors.execute(new Thread(new ConnectRunnable(ssid, password, type)));
}
// 查看以前是否也配置过这个网络
public WifiConfiguration isExsits(String SSID) {
List<WifiConfiguration> existingConfigs = wifiManager .getConfiguredNetworks();
for (WifiConfiguration existingConfig : existingConfigs) {
if (existingConfig.SSID.equals("\"" + SSID + "\"")) {
return existingConfig;
}
}
return null;
}
//配置wifi信息
private WifiConfiguration createWifiInfo(String SSID, String Password,
WifiCipherType Type) {
WifiConfiguration config = new WifiConfiguration();
config.allowedAuthAlgorithms.clear();
config.all