3

可能重复:
如何以编程方式连接到android中的特定wifi网络?

我知道有几个像这样的问题,但我已经尝试了我在 stackoverflow 和其他网站上找到的所有东西,但没有任何东西可以解决我的问题。

我正在从一个设备创建一个接入点,并尝试以编程方式从另一台设备连接到它。两个设备上的 WifiConfiguration 完全相同。我能够找到网络,但它无法连接到它!我很确定 AP 不是问题,因为我可以通过默认的 Android wifi 设置(手动输入密码等)连接到它。

//当通过startScan()找到网络时,我尝试连接:

WifiConfiguration wc=new WifiConfiguration();
wc.SSID="\"my_ssid\"";
wc.preSharedKey = "\"my_password\"";
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);
wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);

int netId=wifi.addNetwork(wc);
wifi.enableNetwork(netId, true);

addNetwork() 正在返回一个有效的网络 ID。我没有收到任何错误。它只是不连接。

我已经尝试将 WifiConfiguration 更改为 OPEN,以及其他几件事,但没有任何效果。wifi也开启了。如果有人可以帮助我,我将不胜感激。

4

1 回答 1

3

经过不断的尝试/失败测试,​​我得到了解决方案。SSID 和密码(预共享密钥)必须在客户端的引号之间!. AP的Wifi配置中的SSID和密码不需要引号

更改后,它开始工作。

每天我都对 Android 中的这种“向导”解决方案感到更加失望......

于 2012-10-18T15:43:56.447 回答