2011-12-14 14 views
1

SSIDを使用して特定のWifiネットワークに接続するにはどうすればよいですか?私は以下のコードを使ってみました。Androidで利用可能なSSID Wi-Fiネットワークに接続するにはどうすればよいですか?

wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 

     WifiConfiguration config = new WifiConfiguration(); 

     if(wifi.startScan()){ 
      List<ScanResult> results = wifi.getScanResults(); 
      for(int i=0;i<results.size();i++) 
      { Log.e("VALUE"," "+results.get(i).toString()); 
       Log.e("",""+results.get(i).SSID); 
       if(results.get(i).SSID.equalsIgnoreCase("\"MAC\"")) 
       { 
        Log.e("","mac....."); 

      try{ 
       String ssid="\""+results.get(i).SSID+"\mac""; 
       Log.e("SSId"," "+ssid); 
       config.SSID=ssid; 
      }catch(Exception e){Log.e("","Error : "+e.toString());} 

      config.preSharedKey="0a0b0f62170ecc5bcf721b6ff170b8b560101b5d56b00a26abec217e0bb4aa1f"; 
      config.status=WifiConfiguration.Status.ENABLED; 

      config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 
      config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); 
      config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 
      config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 
      config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 

      config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
      config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
      config.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 

      int res=wifi.addNetwork(config); 
        Log.e("ENABLE ",""+wifi.enableNetwork(res, false)); 

        break; 
       } 
      } 

     } 

私はこれを行う方法についての情報はありませんでしたか?どこが間違っていますか?

答えて

0

あなたの問題は、私が抱えていた問題と関連している可能性があります。スキャン結果から直接SSID値を取得する場合は、二重引用符ではありませんが、何らかの理由でWifiConfigurationでSSIDが二重引用符で囲まれている必要があります。私の答えを見てください。

https://stackoverflow.com/a/12616521/178931

関連する問題