1

WifiManager.getScanResults()の動作、つまりについて明確にしたいと思います。

ワイヤレスが有効な場合

  1. Android は一定間隔でアクセス ポイントをスキャンしますか? 間隔を照会/変更できますか? 最後のスキャンの時間を照会できますか? ディスカッションについては、この回答を参照してください
  2. ワイヤレス無線がオフ (スリープ) になっている場合 (wifi がまだ有効になっている場合) はgetScanResults()、最後のスキャン結果を返し続けますか? の時間かどうかをどうやって知ることができstartScan()ますか?

ワイヤレスが無効になっている場合

  1. getScanResults()最後のスキャン結果を返しますか? または空のリスト?またはnull(時々 null を返しますが、これは SO に投稿されたスニペットの 90% では処理されません) ?
  2. 1 に対する答えは、再起動後 (Wi-Fi をオフにして起動する電話) にも当てはまりますか?

私が尋ねる理由は、利用可能なアクセス ポイントのリストを定期的に取得する必要があり、実際にその必要がない場合よりも、getScanResults()すぐに電話したいからです。 . また、API レベルと電話ハードウェアがどの程度影響するかもわかりません。WifiManager.startScan()getScanResults()

困難についての良い議論については、この回答を参照してください

4

2 に答える 2

3

ワイヤレスが無効になっている場合

  1. getScanResults()戻りnullます...
  2. ...再起動後でも(それは予想されることです-最初にnullを返さなかった場合、これは論争になります)

ワイヤレスが有効な場合

2.驚くべきことに、しばらくすると十分getScanResults()に戻ってきnullます(Nexus One、Android 2.3.7、Cyanogen mod-しかし、これは実際には関係がないと思います)。はい、どうやらワイヤレスの状態に関係なくスキャンを開始する必要があるようです

状態がWIFI_STATE_DISABLING

ワイヤレスが有効になっている場合の回答にまだ興味があります-特に質問2、デバイスがスリープ状態の場合。Google グループでは投稿できません (ヒント)

于 2013-04-27T22:09:43.787 に答える
-2

public List getScanResults ()

API LEVEL 1で追加

最新のアクセス ポイント スキャンの結果を返します。

最新のスキャンで見つかったアクセス ポイントのリストを返します。有効な結果を得るには、アプリが保持ACCESS_COARSE_LOCATIONまたは権限を持っている必要があります。ACCESS_FINE_LOCATION

于 2016-01-24T06:41:18.450 に答える