我必须显示接入点列表(没有互联网),然后连接到选定的网络。我能够使用 wifiManager.getScanResults() 获得所有可用的网络网络,然后我过滤了我的首选开放网络并使用 wifiManager.addNetwork(conf) 进行了配置;然后我尝试将首选网络与 wifiManager.enableNetwork(j.networkId , true) 它连接到该网络并再次切换回以前的网络。
1)选定的网络已连接 2)然后在几秒钟后断开连接 3)wifi 连接到先前连接的网络 该行为仅在操作系统高于 7.0 的 Android 设备中观察到。Marsh mellow 及以下设备不切换网络
这是我的代码 1 ) 扫描和配置
if (netType == ConnectivityManager.TYPE_WIFI) {
//wifiManager =
(WifiManager)this.getSystemService(Context.WIFI_SERVICE);
List<ScanResult> results = wifiManager.getScanResults();
if (!results.equals(null)) {
for (int i = 0; i < results.size(); i++) {
ScanResult result = results.get(i);
if(result.SSID.toLowerCase().startsWith("XXXX.")) {
list.add(result.SSID);
conf =new WifiConfiguration();
conf.SSID = "\"" + result.SSID + "\"";
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wifiManager.addNetwork(conf);
}
}
}
2) 连接首选网络
if (j.SSID != null && j.SSID.equals("\"" + XXXXXX+ "\"")) {
Log.d("Config", "" + j.SSID);
wifiManager.disconnect();
wifiManager.enableNetwork(j.networkId, true);
wifiManager.reconnect();
break;
}