2013-08-06 11 views
5

Cihazda önceden yapılandırılmışsa getScanResults() yöntemiyle döndürülen her ağı kontrol etmem gerekiyor, yani var olup olmadığını kontrol etmem gerekiyor getConfiguredNetworks() tarafından döndürülen listede. Sorun şudur: Ortak olarak sahip oldukları tek parametre SSID olduğundan bunu nasıl yapabilirim? Bunu yapmanın iyi bir yolu olmadığını biliyorum çünkü aynı SSID'ye sahip daha fazla ağ olabilirdi. Referansda belirtildiği gibi, networkId, istemcinin bu ağ yapılandırma girdisini tanımlamak için kullandığı kimlik numarasıdır, ancak ScanResult nesnesi için benzer bir şey bulamıyorum. ScanResult ağının önceden yapılandırılmış olup olmadığını kontrol edin (getConfiguredNetworks() listesinde var)

Yani

bu benim alıcı ise:

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
registerReceiver(new BroadcastReceiver() 
     { 
      @Override 
      public void onReceive(Context c, Intent intent) 
      { 
       results = wifi.getScanResults(); 
       size = results.size(); 
      } 
     }, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); 

ve ben yapılandırılmış ağlar almak nasıl şudur:

List<WifiConfiguration> list = wifi.getConfiguredNetworks(); 

list.get (i) tekabül olmadığını denetlemek için bir yolu var mı results.get (j) konfigürasyonu, ne için ben ya da j?

cevap

3

Her iki ağdaki BSSID'lerin eşleşip eşleşmediğini kontrol edebilirsiniz. ScanResult ve WifiConfiguration, bir ağa özgü bir BSSID sağlar.

+1

sorun getConfiguredNetworks() Eğer BSSID için bir null alacak tek zamanlarda @Ben BSSID – Ben

+0

için null döndürür olmasıdır şunlardır: wificonfiguration elle kaydedilmiş ve bssid yanlış 2. saklandı 1. wifimanager olduğunu henüz hazır değil (bu sadece nadiren ve olası olmayan özel durumlarda oluşur. –

+0

+ Sreedevi J Ne demek wifimanager henüz hazır değil? Ben özel yapıları durumunda BSSID de – x0a

İlgili konular