在Android中连接指定的WiFi网络

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,并尝试了其他几种方法,但都没有效果。Wi-Fi已经启用。
如果有人能帮忙解决这个问题,我将不胜感激。
1个回答

3
在经历了持续的尝试和失败测试后,我终于找到了解决方案。 SSID和密码(presharedkey)必须仅在客户端中用引号括起来。 在AP的Wificonfiguration中,SSID和密码不需要引号。 修改后,它开始工作了。
每天我都对Android中这种“向导”解决方案感到越来越失望。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接