diff options
author | Roshan Pius <rpius@google.com> | 2017-05-30 14:10:32 -0700 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2017-05-31 11:53:22 -0700 |
commit | 24dc6bb288a15516c89ab507bb86511556824144 (patch) | |
tree | 2cdd9b5f67241bccba488a27d92052068629db8d /service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java | |
parent | 6f91c8e110e38d1856b2006f4d60437dcaade5d8 (diff) | |
download | android_frameworks_opt_net_wifi-24dc6bb288a15516c89ab507bb86511556824144.tar.gz android_frameworks_opt_net_wifi-24dc6bb288a15516c89ab507bb86511556824144.tar.bz2 android_frameworks_opt_net_wifi-24dc6bb288a15516c89ab507bb86511556824144.zip |
WifiScanningService: Don't cache results of partial scan
These partial scan requests are initiated by the wifi stack when
connected to a network for network selection purposes. This might
interfere with full scan requests made by external apps. So, don't cache
such partial scan results. The apps will always get results of the last
full scan request made.
Bug: 38212080
Test: Unit tests
Test: Verified manually that the WifiManager#getScanResults() no longer
outputs partial scan results.
Change-Id: I5e320435e34c6bd74639dd13a480bb26ecea1edb
Diffstat (limited to 'service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java')
-rw-r--r-- | service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java b/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java index ef881dad6..d73bf053c 100644 --- a/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java +++ b/service/java/com/android/server/wifi/scanner/WifiScanningServiceImpl.java @@ -447,6 +447,7 @@ public class WifiScanningServiceImpl extends IWifiScanner.Stub { private RequestList<ScanSettings> mActiveScans = new RequestList<>(); private RequestList<ScanSettings> mPendingScans = new RequestList<>(); + // Scan results cached from the last full single scan request. private ScanResult[] mCachedScanResults = new ScanResult[0]; WifiSingleScanStateMachine(Looper looper) { @@ -879,8 +880,11 @@ public class WifiScanningServiceImpl extends IWifiScanner.Stub { entry.reportEvent(WifiScanner.CMD_SCAN_RESULT, 0, parcelableAllResults); } - // Cache the results here so that apps can retrieve them. - mCachedScanResults = results.getResults(); + // Since we use NoBandChannelHelper, as long as a specific band is mentioned, the scan + // request is treated as full band (WifiScanner.WIFI_BAND_*). + if (results.isAllChannelsScanned()) { + mCachedScanResults = results.getResults(); + } sendScanResultBroadcast(true); } |