【发布时间】:2016-08-20 02:56:07
【问题描述】:
我正在开发 Android 应用程序,该应用程序涉及在没有密码的情况下连接特定的 WiFi SSID。每当用户进入场所应用程序通过 BLE 检测特定信标。在该应用程序尝试使用 WifiManager 连接在应用程序代码中编程的 WiFi。 在这里我面临一些问题: 1) 如果手机中已禁用 WiFi - 应用程序启用 WiFi 并尝试连接到已配置的 WiFi(可能按字母顺序)。在这种情况下,它可能会连接另一个可用且在手机中配置的 WiFi,而不是连接到我的 SSID。
2) 如果手机中启用了 WiFi:如果 WiFi 已启用 App 重新连接到我的 SSID,这是正确的。
3) WiFi 已禁用且我的 SSID 未在手机中配置。它不会连接到 WiFi。
案例 1 和 3 真的很头疼。我在程序中的表现如何,请查看代码:
// wifi
WifiManager wifiManager= (WifiManager) getSystemService(Context.WIFI_SERVICE);
// setup a wifi configuration
WifiConfiguration wc= new WifiConfiguration();
wc.SSID = "\"mySSID\"";
wc.status = WifiConfiguration.Status.ENABLED;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
// connect to and enable the connection
int netId = wifiManager.addNetwork(wc);
wifiManager.enableNetwork(netId, true);
wifiManager.setWifiEnabled(true);
wifiManager.reconnect();
【问题讨论】:
-
我猜您认为 WIFI 被禁用的方式与大多数电话推销员查看“请勿呼叫”列表的方式大致相同。
标签: java android android-studio android-wifi wireless