【问题标题】:Connect to WiFi Which Doesn't Have Internet连接到没有互联网的 WiFi
【发布时间】:2016-09-30 10:30:02
【问题描述】:

我正在尝试连接到应用程序启动时无法访问 Internet 的 WiFi 热点(开放网络)。

但是,还有另一个保存的 Wifi 有互联网。当我打开 Wifi 时,它总是自动连接到可以上网的那个。

我已经尝试解决这个问题一周了!但没有任何工作。事实上,我的代码通过互联网与网络断开连接,但没有连接到我想要的网络。这没有意义。

在 WiFi 设置活动中,它显示“未检测到 Internet。不会自动重新连接。”

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 已在此处提出类似问题,但未提供任何 cmets 或答案。

【问题讨论】:

  • 为什么投反对票???!

标签: android


【解决方案1】:

看来问题出在我自己的手机上。我有 CM13.0,显然他们不允许连接到没有 Internet 访问权限的网络。即使手动连接到没有互联网的网络也很麻烦。

我在其他带有非自定义 ROM 的手机上尝试过,它们都按照上面的代码按预期工作:

  1. 禁用所有已保存的网络(可以改进)
  2. 从当前连接的网络断开
  3. 连接到 ARDrone2

【讨论】:

    猜你喜欢
    • 2019-04-23
    • 1970-01-01
    • 2018-12-31
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 2016-12-30
    • 2018-11-13
    相关资源
    最近更新 更多