【发布时间】:2014-03-23 14:44:19
【问题描述】:
我正在尝试连接到开放的 wifi 网络。当我打开我的应用程序时,它应该打开 wifi 并连接到如下定义的网络。问题是WifiManager.getConfiguredNetworks 总是返回一个空列表。我也尝试过使用锁,但没有成功。
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\"";
conf.status = WifiConfiguration.Status.ENABLED;
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
conf.priority = Integer.MAX_VALUE;
WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(true);
wifiManager.addNetwork(conf);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
if(list.isEmpty())
{
Log.e("Connection Setup","Empty list returned");
}
for( WifiConfiguration i : list ) {
if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
Log.e("Connection Setup",i.SSID+" connrction attempted");
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}
}
我一直在尝试更多的东西 - 如果我让这个线程休眠大约 10 秒左右 - 一切正常 - 但有更好的选择吗?
【问题讨论】:
-
您是否尝试过不带 SSID、状态和优先级?那它看到了吗?
-
@bluewhite 我想我至少需要 SSID,我试过没有其他两个但它仍然不起作用:/
标签: android wifi android-wifi