diff options
author | Etan Cohen <etancohen@google.com> | 2020-01-16 17:11:30 -0800 |
---|---|---|
committer | Etan Cohen <etancohen@google.com> | 2020-01-22 10:25:04 -0800 |
commit | 77c0640bcc0791909e3716f633e7c66d3e1e4eca (patch) | |
tree | 2d4fafce357d14b9ce7bd85936bb67f5d86de23e /services | |
parent | ad1c710e827ac392887c7b6e011832f76c9ff549 (diff) |
[CDM][WIFI] Provide a permission for Wi-Fi association approval for companion apps
Rename API to make it explicit to Wi-Fi.
Bug: 135211972
Test: atest android.os.cts.CompanionDeviceManagerTest
Change-Id: I75b6d13432407a4e2804b57dcf6956055c9cefb6
Diffstat (limited to 'services')
-rw-r--r-- | services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java index e976811a3094..434a97ee0bc5 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java @@ -361,13 +361,18 @@ public class CompanionDeviceManagerService extends SystemService implements Bind } @Override - public boolean isDeviceAssociated(String packageName, String macAddress, int userId) { + public boolean isDeviceAssociatedForWifiConnection(String packageName, String macAddress, + int userId) { getContext().enforceCallingOrSelfPermission( android.Manifest.permission.MANAGE_COMPANION_DEVICES, "isDeviceAssociated"); + boolean bypassMacPermission = getContext().getPackageManager().checkPermission( + android.Manifest.permission.COMPANION_APPROVE_WIFI_CONNECTIONS, packageName) + == PackageManager.PERMISSION_GRANTED; + return CollectionUtils.any( readAllAssociations(userId, packageName), - a -> Objects.equals(a.deviceAddress, macAddress)); + a -> bypassMacPermission || Objects.equals(a.deviceAddress, macAddress)); } private void checkCanCallNotificationApi(String callingPackage) throws RemoteException { |