一:使用到的3个广播
a: WifiManager.SCAN_RESULTS_AVAILABLE_ACTION(处理WiFi扫描结果的)
b:WifiManager.NETWORK_STATE_CHANGED_ACTION(网络状态变化)
c:WifiManager.SUPPLICANT_STATE_CHANGED_ACTION(指示WPA请求状态)
二:几个关键的类
a:WifiManager
b:WifiConfiguration
c:WifiInfo
d:ScanResult
e:NetworkInfo
f:SupplicantState
三:几个关键方法
1 wifiManager.startScan() 开始扫描可用WiFi
2 wifiManager.getScanResults() 获取扫描的WiFi列表
3 wifiManager.getConfiguredNetworks() 获取已经保存过的WiFi列表
4 wifiManager.addNetwork(config) 通过一个WifiConfiguration对象 来添加一个网络,返回一个netWorkId。返回值-1代表添加失败 其他值代表添加成功。netWorkId的值就代表你刚刚添加成功的网络,在你所有保存过的WiFi列表里的位置
5 wifiManager.enableNetwork(netWorkId, true) 连接指定的WiFi
6 wifiManager.saveConfiguration() 保存配置信息
7 wifiManager.removeNetwork(networkId) 取消保存已连接的WiFi
四:几个代码块
1 开始扫描
wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
}
wifiManager.startScan();
2 判断WiFi密码输入是否正确
if (action.equals(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION)) {
int linkWifiResult = intent.getIntExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, 123);
if (linkWifiResult == WifiManager.ERROR_AUTHENTICATING) {
ToastUtil.showToast("啊 网络密码有问题");
wifiManager.removeNetwork(networkId);
}
}