2017-03-17 26 views
0

特定の無線LANに接続しようとしていますが、動作していません。私は下のコードを呼び出すたびに、すでに接続されている無線LANの停止とスキャンモードで無線LANを示す電話。誰かがなぜこれが起こっているのか教えてもらえますか?ここに私のコードです:wifiMangerを使用してWIFIに接続できません

String result = ""; 
    try { 
     WifiConfiguration wifiConfig = new WifiConfiguration(); 
     wifiConfig.SSID = String.format("\"%s\"", ssid); 
     WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 

     int netId = wifiManager.addNetwork(wifiConfig); 
     wifiManager.disconnect(); 
     wifiManager.enableNetwork(netId, true); 
     wifiManager.reconnect(); 
     int state = wifiManager.getWifiState(); 
     Log.i(TAG, "state: " + state); 
     WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 
     String newSSID = wifiInfo.getSSID(); 
     result = "Connected"; 
    } catch (Exception e) { 
     result = "Failed"; 
     Log.e(TAG, "unable to set wifi " + ssid, e); 
    } 
+0

を再接続するコードの下に必要

これはオープンネットワークです??それ以外の場合は、他の設定も必要です。 –

+0

これは開かれていませんが、既にモバイルに保存されています。だから、私はそれに接続するための設定と一緒に鍵を与える必要があるとは思わない。 –

答えて

0

私はSSIDをもう一度追加すべきではないと思います。このコードwifiManager.addNetwork(wifiConfig)は、あなたのデバイスに別のWi-Fiプロファイルを追加しています。あなただけの

private boolean connectToWifi(String ssid) { 
    WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 
    List<WifiConfiguration> wifiList = wifiManager.getConfiguredNetworks(); 
    for(WifiConfiguration config : wifiList) { 
     if(config.SSID != null && config.SSID.equals("\"" + ssid + "\"")) { 
      wifiManager.disconnect(); 
      wifiManager.enableNetwork(config.networkId, true); 
      wifiManager.reconnect();    
      return true; 
     }   
    } 
    return false; 
} 
+0

あなたは正しいです。しかし、私はまだ接続することができません。 Wi-Fiをオフにして、以前に接続したネットワークに戻します。これはアンドロイドのように、最初に保存ネットワークリストのデフォルトネットワークを優先させるようです。このネットワークをデフォルトのものから削除し、デフォルトで新しいネットワークを追加する方法はありますか? –

+0

@ user526206まず、すべてのWi-Fiプロファイルを端末から削除し、再度設定します。 –

+0

ありがとうございます。適切な方法は、接続されたネットワークを無効にすることです:wifiManager.disconnect(); wifiManager.enableNetwork(config.networkId、true); wifiManager.disableNetwork(connectedNetwork); wifiManager.reconnect(); –

関連する問題