Android WifiManager正在进行虚拟连接?

Android WifiManager正在进行虚拟连接?,android,android-wifi,android-networking,Android,Android Wifi,Android Networking,我正在使用WifiManager测试特定SSID的存在,并验证给定的WPA密码,但我得到了一个奇怪的结果 代码如下所示: WifiConfiguration wc = new WifiConfiguration(); // init ssid and password as Strings ... wc.SSID = "\"" + ssid + "\""; wc2.preSharedKey = "\"" + password + "\""; wc.hiddenSSID = true; wc

我正在使用WifiManager测试特定SSID的存在,并验证给定的WPA密码,但我得到了一个奇怪的结果

代码如下所示:

WifiConfiguration wc = new WifiConfiguration();

// init ssid and password as Strings ...
wc.SSID = "\"" + ssid + "\"";
wc2.preSharedKey  = "\"" + password + "\"";

wc.hiddenSSID = true;
wc.status = WifiConfiguration.Status.ENABLED;
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);

int res = wifi.addNetwork(wc);
boolean b = wifi.enableNetwork(res, true);
奇怪的是enableNetwork()返回true,即使带有SSID的wifi网络不在线(?!)。但是,请注意,如果目标Wifi网络存在且密码正确,则代码会成功建立连接

Android文档中说enableNetwork()“如果操作成功,则返回true。”我的问题是:

1) 如果网络不存在,它如何启用

2) 我是否错误地初始化了WifiConfiguration参数wc

3) 这是连接/测试Wifi网络的正确方法吗

1) 如果网络不存在,它如何启用

Android文档说enableNetwork()“如果操作成功,则返回true。”

它们实际上意味着启用操作已成功启动,但尚未崩溃。。。如果wifi实例不再链接到wifi请求者,则返回false

2) 我是否错误地初始化了WifiConfiguration参数wc

我不确定,但看起来不错

3) 这是连接/测试Wifi网络的正确方法吗

启用网络之前,应使用
startScan()
方法检查网络是否实际可用。(您将在回调中获得SSID列表)

您还应该使用BroadcastReceiver从Intent action
NETWORK\u STATE\u CHANGED\u action
获取结果,在该操作中,您可以检查与接入点的连接是否成功

1) 如果网络不存在,它如何启用

Android文档说enableNetwork()“如果操作成功,则返回true。”

它们实际上意味着启用操作已成功启动,但尚未崩溃。。。如果wifi实例不再链接到wifi请求者,则返回false

2) 我是否错误地初始化了WifiConfiguration参数wc

我不确定,但看起来不错

3) 这是连接/测试Wifi网络的正确方法吗

启用网络之前,应使用
startScan()
方法检查网络是否实际可用。(您将在回调中获得SSID列表)

您还应该使用BroadcastReceiver从Intent action
NETWORK\u STATE\u CHANGED\u action
获取结果,在该操作中,您可以检查与接入点的连接是否成功