2016-09-30 152 views
0

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

但是,有另一个保存的互联网Wifi。当我打开Wifi时,它会自动连接到具有Internet访问权限的那个。

我一直在试图解决这个问题,因为一个星期了!但没有任何工作。事实上,我的代码与网络断开连接,但没有连接到我想要的网络。这没有意义。

在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,但没有提供任何意见或答案。

+0

为什么投票???! – user640853

回答

1

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

我试图在其他手机与非定制ROM和他们所有的工作按照上面的代码预期:

  1. 禁用所有保存的网络(这可以改善)从当前连接
  2. 断开网络
  3. 连接到ARDrone2
相关问题