13

すべての AP の BSSID(MAC) を取得する必要があります。以下のコードブロックを見つけてください。

    List<WifiConfiguration> test =  wifiManager.getConfiguredNetworks();
    for(int k=0;k<test.size();k++){ 
        Log.d("acheck", "test BSSID = "+test.get(k).BSSID);         
        Log.d("acheck", "test BSSID = "+test.get(k).BSSID);    
   }

ただし、上記のコード ブロックは SSID を適切に返しますが、BSSID については null を返します。ユーザー定義のSSIDで最強のアクセスポイントに接続したい。ユーザー定義の SSID で最高の信号強度の AP を取得するために使用できる API メソッドはありますか?

4

3 に答える 3

6

構成では、設定部分だけです(たとえば、ユーザー/パス/ WPAまたはNULL何とか何とかを尋ねるダイアログなど)

AP から BSSID を取得するには、ScanResult から取得する必要があります

public void loadWifiAvailableList() {
    List<ScanResult> results = wifiManager.getScanResults();
    ScanResult bestSignal = null;
    etWifiList.setText(""); // etWifiList is EditText
    int count = 1;
    for (ScanResult result : results) {
        etWifiList.append(count++ + ". " + result.SSID + " : " + result.level + "\n" +
                result.BSSID + "\n" + result.capabilities + "\n" +
                "\n=======================\n");

      if (bestSignal == null || WifiManager.compareSignalLevel(bestSignal.level, result.level) < 0) 
      {
        bestSignal = result;
      }
    }


    String message = String.format("%s networks found. %s is the strongest.",
        results.size(), bestSignal.SSID + " : " + bestSignal.level);
    Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
于 2012-09-27T04:22:49.617 に答える