簡體   English   中英

Android 上的 WiFi 掃描

[英]WiFi scan on Android

我有一個正在掃描 Wi-Fi 網絡的應用程序。 完成一次 Wi-Fi 掃描后,我將開始新的掃描。 我正在 Pixel3 和 SamsungS10 手機上對此進行測試。 在這兩款手機上,我都禁用了開發人員選項中的 Wi-Fi 掃描限制。 我在辦公室進行掃描,那里有很多不同的 Wi-Fi 網絡。 我觀察到的問題是,Pixel3 Wi-Fi 掃描在一段時間內工作正常,然后它們開始返回掃描錯誤,連續掃描十多次,之后掃描再次正常工作。 這是定期發生的。 該問題在 SamsungS10 手機上根本不會發生。 這是我進行掃描的方式:

wifiManager.startScan();

BroadcastReceiver wifiScanReceiver = new BroadcastReceiver() {
  @Override
  public void onReceive(Context c, Intent intent) {
    boolean success = intent.getBooleanExtra(
                       WifiManager.EXTRA_RESULTS_UPDATED, false);
    if (success) {
      scanSuccess();
    } else {
      scanFailure();
    }

    wifiManager.startScan();
  }
}; 

知道為什么 Pixel3 手機上的 Wi-Fi 掃描效果更差嗎? 有沒有辦法從boolean success = intent.getBooleanExtra(WifiManager.EXTRA_RESULTS_UPDATED, false);獲取精確的 Wi-Fi 掃描錯誤代碼/錯誤消息而不是簡單的布爾boolean success = intent.getBooleanExtra(WifiManager.EXTRA_RESULTS_UPDATED, false); ?

此頁面 ( https://developer.android.com/guide/topics/connectivity/wifi-scan#wifi-scan-process ) 包含以下代碼:

private void scanFailure() {
  // handle failure: new scan did NOT succeed
  // consider using old scan results: these are the OLD results!
  List<ScanResult> results = wifiManager.getScanResults();
  //... potentially use older scan results ...
}

我相信谷歌的操作系統開發人員,為了獲得更好的電池壽命,簡單地阻止應用程序一直進行“wifi掃描”。 正如代碼中的注釋所描述的,如果出現錯誤,您應該簡單地使用舊結果。 比爾戴夫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM