2012-01-30 6 views
0

SSID에 Android를 연결할 수 없습니다. WifiConfiguration을 시도하지만 unsucessfull을 시도하면 내 ssid가 열려 있습니다 (비밀번호 없음).어떻게 안드로이드에 SSID를 공개하지 않고 비밀번호를 다시 입력하지 않습니까

Android UI에서는 연결할 수 있지만 코드에는 연결할 수 없습니다.

아무도 도와주세요?

Tankyou.

편집 :

내 코드 : 아마

String networkSSID = "DL63.0.0.0.1"; 
     String networkPass = ""; 

     WifiConfiguration conf = new WifiConfiguration(); 
     conf.SSID = "\"" + networkSSID + "\""; 
//  conf.wepKeys[0] = "\"" + networkPass + "\""; 
//  conf.wepTxKeyIndex = 0; 
     conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); 
//  conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 

     WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
     wifiManager.addNetwork(conf); 

     List<WifiConfiguration> list = wifiManager.getConfiguredNetworks(); 
     for (WifiConfiguration i : list) { 
      if (i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) { 
       wifiManager.disconnect(); 
       wifiManager.enableNetwork(i.networkId, true); 
       wifiManager.reconnect(); 

       Toast.makeText(this, "SSID: "+wifiManager.getConnectionInfo().getSSID(), Toast.LENGTH_SHORT).show(); 
       break; 
      } 
     } 

     status.setText("SSID: "+wifiManager.getConnectionInfo().getSSID()); 
+0

정확히 무엇을 시도 했습니까? – Yahia

+0

이 두 코드 (답변 2와 3)를 시도해보십시오. http://stackoverflow.com/questions/8818290/how-to-connect-to-a-specific-wifi-network-in-android-programmatically –

+0

정확히 어떻게되는지 ? 모든 예외/오류 메시지? – Yahia

답변

0

wifiManager.reconnect(); 연결하는 비동기 프로세스를 시작하기 때문이다. 코드가 마지막 줄에 도달하면 아직 연결이 없습니다 (시간이 걸리거나 1 분 정도 걸릴 수도 있습니다). 따라서 null이 바로 그 해답입니다. connect 이벤트에 반응하려면 리스너가 필요합니다. 자세한 내용은 해당 질문을 참조하십시오. https://stackoverflow.com/a/5890553/1503237