diff options
| -rw-r--r-- | wifi/java/android/net/wifi/IWifiManager.aidl | 2 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/WifiManager.java | 13 | ||||
| -rw-r--r-- | wifi/java/com/android/server/wifi/AbstractWifiService.java | 2 |
3 files changed, 13 insertions, 4 deletions
diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl index fef0ed711b66..07f7cb39a78c 100644 --- a/wifi/java/android/net/wifi/IWifiManager.aidl +++ b/wifi/java/android/net/wifi/IWifiManager.aidl @@ -60,7 +60,7 @@ interface IWifiManager ParceledListSlice getConfiguredNetworks(String packageName); - ParceledListSlice getPrivilegedConfiguredNetworks(); + ParceledListSlice getPrivilegedConfiguredNetworks(String packageName); Map getAllMatchingFqdnsForScanResults(in List<ScanResult> scanResult); diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index ad2ed81398c1..b265c40e628d 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -16,6 +16,10 @@ package android.net.wifi; +import static android.Manifest.permission.ACCESS_COARSE_LOCATION; +import static android.Manifest.permission.ACCESS_WIFI_STATE; +import static android.Manifest.permission.READ_WIFI_CREDENTIAL; + import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; @@ -1136,6 +1140,10 @@ public class WifiManager { /** * Return a list of all the networks configured for the current foreground * user. + * + * Requires the same permissions as {@link #getScanResults}. + * If such access is not allowed, this API will always return an empty list. + * * Not all fields of WifiConfiguration are returned. Only the following * fields are filled in: * <ul> @@ -1162,6 +1170,7 @@ public class WifiManager { * {@link android.os.Build.VERSION_CODES#Q} or above, this API will always return an empty list. */ @Deprecated + @RequiresPermission(allOf = {ACCESS_COARSE_LOCATION, ACCESS_WIFI_STATE}) public List<WifiConfiguration> getConfiguredNetworks() { try { ParceledListSlice<WifiConfiguration> parceledList = @@ -1177,11 +1186,11 @@ public class WifiManager { /** @hide */ @SystemApi - @RequiresPermission(android.Manifest.permission.READ_WIFI_CREDENTIAL) + @RequiresPermission(allOf = {ACCESS_COARSE_LOCATION, ACCESS_WIFI_STATE, READ_WIFI_CREDENTIAL}) public List<WifiConfiguration> getPrivilegedConfiguredNetworks() { try { ParceledListSlice<WifiConfiguration> parceledList = - mService.getPrivilegedConfiguredNetworks(); + mService.getPrivilegedConfiguredNetworks(mContext.getOpPackageName()); if (parceledList == null) { return Collections.emptyList(); } diff --git a/wifi/java/com/android/server/wifi/AbstractWifiService.java b/wifi/java/com/android/server/wifi/AbstractWifiService.java index c505a5872b05..c20e20fda1eb 100644 --- a/wifi/java/com/android/server/wifi/AbstractWifiService.java +++ b/wifi/java/com/android/server/wifi/AbstractWifiService.java @@ -81,7 +81,7 @@ public abstract class AbstractWifiService extends IWifiManager.Stub { } @Override - public ParceledListSlice getPrivilegedConfiguredNetworks() { + public ParceledListSlice getPrivilegedConfiguredNetworks(String packageName) { throw new UnsupportedOperationException(); } |