在 WiFi 功能开发的时候,项目中有一个需求是超时逻辑,但是 Android 系统 WiFi 连接的广播只有连接成功,或者是 WiFi 密码错误的广播,并没有定义这种类型。所以我在项目中是使用了 handler 记时的,到了一定的时间去停止当前的连接,代码如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
    public void disableNetwork(String ssid) {
        if (mWifiManager != null && !TextUtils.isEmpty(ssid)) {
            List<WifiConfiguration> list = mWifiManager.getConfiguredNetworks();
            for (WifiConfiguration configuration : list) {
                if (ssid.equals(removeQuotedString(configuration.SSID))) {
                    mWifiManager.disableNetwork(configuration.networkId);
                    break;
                }
            }
        }
    }

    public static String removeQuotedString(String string) {

        if (!TextUtils.isEmpty(string)) {
            return string.substring(1, string.length() - 1);
        }


        return "";
    }