2016-09-30 219 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
相關問題