关于安卓WIFI连接的几点随记

1,695 阅读1分钟

一:使用到的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);
                }
            }