make startScan with worksource specific to location scans

Change-Id: Ia09dae3e334ef6fd11f2b468e78ad7c2c3cf55e9
diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl
index a752686..5ee17bb 100644
--- a/wifi/java/android/net/wifi/IWifiManager.aidl
+++ b/wifi/java/android/net/wifi/IWifiManager.aidl
@@ -61,6 +61,8 @@
 
     void startScan(in ScanSettings requested, in WorkSource ws);
 
+    void startLocationRestrictedScan(in WorkSource ws);
+
     List<ScanResult> getScanResults(String callingPackage);
 
     void disconnect();
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index 6ddebde..d19952c 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -1011,6 +1011,22 @@
     }
 
     /**
+     * startLocationRestrictedScan()
+     * Trigger a scan which will not make use of DFS channels and is thus not suitable for
+     * establishing wifi connection.
+     * @hide
+     */
+    @SystemApi
+    public boolean startLocationRestrictedScan(WorkSource workSource) {
+        try {
+            mService.startLocationRestrictedScan(workSource);
+            return true;
+        } catch (RemoteException e) {
+            return false;
+        }
+    }
+
+    /**
      * Request a scan for access points in specified channel list. Each channel is specified by its
      * frequency in MHz, e.g. "5500" (do NOT include "DFS" even though it is). The availability of
      * the results is made known later in the same way as {@link #startScan}.