[英]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.