2011-06-23 16 views
1

私は、WiFiネットワークの種類とステータスを表示するアプリケーションを作成しています。 「範囲外の」WiFiネットワークをすべて見つけるにはどうすればよいですか?範囲外の設定済みの(以前に見た)すべてのWiFiネットワークのリストを取得できますか?範囲外のすべてのWiFiネットワークを見つける方法は?

私は結果に

WifiManager mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
    List<WifiConfiguration> configs = mWifiManager.getConfiguredNetworks(); 
    List<ScanResult> results = mWifiManager.getScanResults(); 
    if (configs != null) { 
     for (WifiConfiguration config : configs) { 
      for (ScanResult result : results) { 
       if (result.SSID == null || result.SSID.length() == 0) { 
        continue; 
       } 

       else { 
        if (result.SSID.equals(MyString.removeDoubleQuotes(config.SSID))) { 
         int level = mWifiManager.CalculateSignalLevel(result.level, 4); 
         Log.d("MyApp", Config.SSID + " " + level); 
        } 
       } 
      } 
     } 
    } 

を取得するために以下のコードを使用しかし、設定されたネットワークの数が高い場合、それは実行に時間がかかります。この問題を最適化する方法はありますか?設定されたネットワークのみのスキャン結果を取得します。

答えて

3

どのようなWi-Fiネットワークから範囲内のWi-Fiネットワークを差し引くのですか?

+0

はい、それはアイデアだと思いますが、ネットワークがwifiManagerの範囲内にあることを見つけるための正確なAPIはわかりません。それらを見つける方法についていくつかの洞察を提供できますか? – Ron

+0

@Ronあなたは既にそれを使用しています、それはスキャンの結果です。 – EJP

+0

遅れて申し訳ありませんが、私はどのように上記のものを最適化することができます。設定されたネットワークの数が多い場合は、結果を得るのに時間がかかります。 – Ron

関連する問題