From 0f8fa208482bdfd56e55300c5ac7692d02b71c8c Mon Sep 17 00:00:00 2001 From: "Nate(Qiang) Jiang" Date: Wed, 30 Oct 2019 14:05:05 -0700 Subject: [PATCH] add support for multiple listeners from same package Bug: 143138047 Test: atest android.net.wifi Test: atest com.android.server.wifi Change-Id: Ia1ce78bf8fd540869f74308c1d25a358ea344e58 --- wifi/java/android/net/wifi/WifiManager.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index 380ebf104a14a..07831c71b0d30 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -5240,16 +5240,18 @@ public class WifiManager { /** * Add a listener for Scan Results. See {@link ScanResultsListener}. * Caller will receive the event when scan results are available. - * Caller should use {@link WifiManager#getScanResults()} to get the scan results. + * Caller should use {@link WifiManager#getScanResults()} requires + * {@link android.Manifest.permission#ACCESS_FINE_LOCATION} to get the scan results. * Caller can remove a previously registered listener using * {@link WifiManager#removeScanResultsListener(ScanResultsListener)} + * Same caller can add multiple listeners. *

* Applications should have the * {@link android.Manifest.permission#ACCESS_WIFI_STATE} permission. Callers * without the permission will trigger a {@link java.lang.SecurityException}. *

* - * @param executor The executor to execute the listener of the {@code listener} object. + * @param executor The executor to execute the listener of the {@code listener} object. * @param listener listener for Scan Results events */ @@ -5267,7 +5269,7 @@ public class WifiManager { iWifiManager.registerScanResultsListener( new Binder(), new ScanResultsListenerProxy(executor, listener), - mContext.getOpPackageName().hashCode()); + listener.hashCode()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -5289,7 +5291,7 @@ public class WifiManager { if (iWifiManager == null) { throw new RemoteException("Wifi service is not running"); } - iWifiManager.unregisterScanResultsListener(mContext.getOpPackageName().hashCode()); + iWifiManager.unregisterScanResultsListener(listener.hashCode()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); }