可能重复:
How to connect to a specific wifi network in android programmatically?
我知道有几个像这样的问题,但我已经尝试过在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也启用了。 如果有人能帮助我,我将非常感激。
答案 0 :(得分:3)
经过连续尝试/失败测试后,我得到了解决方案。 SSID和密码(预共享密钥)必须在引号之间只是在客户端!。 AP的Wificonfiguration中的SSID和密码不需要引号。
更改后,它开始工作。
每天我都对Android中的这种“向导”解决方案感到失望....