连接到Android中的特定WiFi网络

时间:2012-10-18 14:38:49

标签: android wifi wifimanager

  

可能重复:
  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也启用了。 如果有人能帮助我,我将非常感激。

1 个答案:

答案 0 :(得分:3)

经过连续尝试/失败测试后,我得到了解决方案。 SSID和密码(预共享密钥)必须在引号之间只是在客户端!。 AP的Wificonfiguration中的SSID和密码不需要引号

更改后,它开始工作。

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