アプリの起動時にインターネットにアクセスできないWiFiホットスポット(オープンネットワーク)に接続しようとしています。インターネットに接続していないWiFiに接続する
しかし、インターネットを持つ別の保存された無線LANがあります。 Wi-Fiをオンにすると、インターネットに接続されている端末に自動的に接続されます。
私は1週間ほどこの問題を修正しようとしています!しかし、何も働いていません。実際、私のコードはインターネットとのネットワーク接続を切断しますが、私が望むネットワークには接続しません。それは意味をなさない。
WiFi設定アクティビティでは、「インターネットは検出されません。自動的に再接続しません」と表示されます。
private boolean tryConnect(WifiManager wifiManager, List<ScanResult> scanResults) {
for (ScanResult scanResult : scanResults) {
Log.d(TAG, "SCAN-RESULT: " + scanResult);
if (scanResult.SSID.toLowerCase().contains(MainActivity.ARDRONE2_HOTSPOT_NAME) && WifiUtilities.getScanResultSecurity(scanResult) == WifiUtilities.NetworkSecurity.OPEN) {
Log.d(TAG, "Trying Connecting to ARDrone2");
WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.SSID = String.format("\"%s\"", scanResult.SSID);
wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wifiConfiguration.priority = Integer.MAX_VALUE - 1;
List<WifiConfiguration> wifiConfigList = wifiManager.getConfiguredNetworks();
int networkId = -1;
for (WifiConfiguration wifiConfig : wifiConfigList) {
if (wifiConfig != null) {
if (wifiConfig.SSID.equals("\"" + scanResult.SSID + "\"")) {
networkId = wifiConfig.networkId;
} else {
wifiManager.disableNetwork(wifiConfig.networkId);
}
}
}
if (networkId == -1) {
networkId = wifiManager.addNetwork(wifiConfiguration);
} else {
networkId = wifiManager.updateNetwork(wifiConfiguration);;
}
wifiManager.saveConfiguration();
wifiManager.disconnect();
wifiManager.enableNetwork(networkId, true);
wifiManager.reconnect();
return true;
}
}
return false;
}
デバッグログ:「ARDrone2に接続しようとしています」というメッセージが表示されますが、接続できません。
Android, automatically connecting to wifi networks that have no internet accessと同様の質問がありましたが、コメントや回答はありませんでした。
なぜダウン票???! – user640853