2

複数のワイヤレス信号の強度をスキャンしようとしています。そのために、私は WifiManager を使用し、ループで startScan() を呼び出し、結果を取得するブロードキャスト レシーバーを用意しています。

私の質問は:

一部のネットワークのみをスキャンするにはどうすればよいですか? 結果では、利用可能なすべてのネットワークを取得します。一部の bssid のみを検索するようにスキャンをフィルタリングできますか? またはssid?AP の値以外の値は気にしません。そして、このスキャンを可能な限り最高の頻度で行う必要があります。

もう 1 つは、startScan を再度呼び出すと (前回の呼び出しから 500 ミリ秒後)、スキャンが停止するかどうかです。信号を強くする頻度を最大限に減らしたいのですが、結果が不完全な場合があるようです??

WifiManager クラスのソース コードを変更して、スキャンをいくつかの ID にフィルター処理することはできますか?

どうもありがとう!

4

1 に答える 1

1

いいえ、フィルターを設定することはできませんが、後で自分で結果をフィルター処理することができます。これにより、パフォーマンスが大幅に低下することはありません (100 エントリ未満のリストをフィルター処理する)。また、私の経験から、スキャンが既に実行されているときにスキャンを要求した場合、新しいスキャンは開始されません。したがって、最後のスキャンが結果を返す前に新しいスキャンを開始しても意味がありません。Android プラットフォームの一部であるため、WifiManager を変更することもできません。

于 2011-05-02T14:45:14.883 に答える