android - WifiManager 重新连接返回 true 但未连接

标签 android android-networking

如果信号足够强,我的应用程序会创建临时连接。不幸的是,Android 不允许多个 WIFI 网络,所以我必须断开当前的连接。当信号变弱时,我想重新连接到前一个。

我将之前连接的 SSID 存储在 SharedPreference 中,然后使用以下代码:

 for (WifiConfiguration i : list) {
    if (i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
         wifiManager.disconnect();
         wifiManager.enableNetwork(i.networkId, true);
         boolean success = wifiManager.reconnect();
         if (!success) {
            wifiManager.reassociate();
         }
    }
 }

代码正常运行,WifiManger.reconnect(); 返回 true 但我没有连接到之前的网络。

这是我要重新连接的家庭网络的配置:

ID: 10 SSID: ""WLAN.Tele2.net"" BSSID: null FQDN: null REALM: null PRIO: 0
 KeyMgmt: NONE Protocols: WPA RSN
 AuthAlgorithms:
 PairwiseCiphers: TKIP CCMP
 GroupCiphers: WEP40 WEP104 TKIP CCMP
 PSK: 
Enterprise config:
password NULL
subject_match NULL
engine 0
client_cert NULL
ca_cert NULL
anonymous_identity NULL
phase1 NULL
identity NULL
key_id NULL
engine_id NULL
phase2 NULL
sim_slot_id NULL
eap NULL
IP config:
IP assignment: DHCP
Proxy settings: NONE
 autoJoinBSSID=any
triggeredLow: 0 triggeredBad: 0 triggeredNotHigh: 0
ticksLow: 0 ticksBad: 0 ticksNotHigh: 0
triggeredJoin: 0
autoJoinBailedDueToLowRssi: false
autoJoinUseAggressiveJoinAttemptThreshold: 0

最佳答案

问题出在引号上,因为我已经将 WifiConfiguration.SSID 存储在我的 SharedPreferences 中,这导致了双引号 -> ""WLAN.Tele2.net""

equals("\"" + networkSSID + "\"")

关于android - WifiManager 重新连接返回 true 但未连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30457886/

相关文章:

android - 为我的 android 应用程序构建一个扩展系统

android - Android DNS 需要预热吗?

android - 使用未弃用的方法以编程方式获取 Android 设备的 IPv4 和 IPv6,无论是在 Wifi 上还是在 Carier 的网络上

java - Android UnknownHostException Facebook SDK

java - 基本安卓 : How to display string of user input?

android - 使用 Intellij IDEA 12/13 导入并运行 Phonegap 3.0 项目?

android - 更新到android gradle插件3.5后出现proguard问题

android - DatePicker 不工作,IllegalArgumentException

android - 从以特定方式开始和结束的 Web 链接启动 android 应用 Activity

android - 即使 Wi-Fi 可用,也可以使用 LTE(蜂窝网络)下载 HTTP 文件