0

以前に選択した AP から RSSI 測定値を取得してこのアプリを実行していますが (以下のコードに記載されている「recebidos」変数で取得されます)、ブロードキャスト受信でスキャンした後、アプリケーションは RSSI 値を更新していません。常に以前の値を返すだけです!!! このコードの何が問題なのですか? getScanResults を で使用できませんWifiManager.SCAN_RESULTS_AVAILABLE_ACTIONか?

私を助けてください...

private final BroadcastReceiver wifiReceiver = new BroadcastReceiver()
        {
      @Override
      public void onReceive(Context ctx, Intent intent)
      {
          listaAP=wifiManager.getScanResults();


          recebidos=nivel.split("SP1");

          StringBuffer scanList = new StringBuffer();
          if (listaAP != null) {
              for (int i = listaAP.size() - 1; i >= 0; i--) {
                  final ScanResult scanResult = listaAP.get(i);

                  if (scanResult == null) {
                      continue;
                  }

                  if (TextUtils.isEmpty(scanResult.BSSID)) {
                      continue;
                  }

                  scanList.append("SP1ID:"+scanResult.BSSID+"RSSI"+scanResult.level);

                  }

              results=scanList.toString().split("SP1");

              for(int z=0;z<results.length;z++)
              {
                  for(int x=0;x<recebidos.length;x++)
                  {
                  if(results[z].compareTo(recebidos[x])==0)
                  {
                      textRssi.append(results[z]);
                  }

                  }
              }

                   }}};
4

1 に答える 1

0

android.net.wifi.WifiManager.startScan()またはstartScanActive()を呼び出して、別のスキャンを強制する必要があります。これを定期的に呼び出さない限り、データは更新されません。

于 2011-03-22T17:03:39.353 に答える