首页 文章

在手机中禁用wifi时,使用Android库连接Android中的特定wifi

提问于
浏览
1

我正在研究Android应用程序,它涉及连接一个没有密码的特定WiFi SSID . 每当用户进入房屋应用程序时,通过BLE检测特定信标 . 之后该应用尝试使用WifiManager连接应用程序代码中编程的WiFi . 在这里,我面临一些问题:1)如果WiFi已在手机中禁用 - 应用程序启用WiFi并尝试连接到已配置的WiFi(可能是字母顺序) . 在这种情况下,它可以连接另一个可用的并在手机中配置的WiFi,而不是连接到我的SSID .

2)如果在手机中启用WiFi:如果WiFi已启用应用重新连接到我的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();

1 回答

相关问题