diff options
| author | Eugene Susla <eugenesusla@google.com> | 2021-03-24 20:56:54 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-03-24 20:56:54 +0000 |
| commit | 4af392fe39a54eab078197bf6479c70cd8548b06 (patch) | |
| tree | cbee18b5261c3b91b740099a487ccd62d678a627 /core/java/android | |
| parent | 8d95267eea1baba0847e316dc48ec716af0fe5d0 (diff) | |
| parent | 120de6c1c4c1597f9da18925a5bac8a312557866 (diff) | |
Merge "Provide CDM API to associate without prompt" into sc-dev
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/companion/CompanionDeviceManager.java | 26 | ||||
| -rw-r--r-- | core/java/android/companion/ICompanionDeviceManager.aidl | 2 |
2 files changed, 28 insertions, 0 deletions
diff --git a/core/java/android/companion/CompanionDeviceManager.java b/core/java/android/companion/CompanionDeviceManager.java index 86bd8a2b7a4e..2ce715630c93 100644 --- a/core/java/android/companion/CompanionDeviceManager.java +++ b/core/java/android/companion/CompanionDeviceManager.java @@ -425,6 +425,32 @@ public final class CompanionDeviceManager { mContext.getPackageName(), deviceAddress); } catch (RemoteException e) { ExceptionUtils.propagateIfInstanceOf(e.getCause(), DeviceNotAssociatedException.class); + } + } + + /** + * Associates given device with given app for the given user directly, without UI prompt. + * + * @return whether successful + * + * @hide + */ + @SystemApi + @RequiresPermission(android.Manifest.permission.ASSOCIATE_COMPANION_DEVICES) + public boolean associate( + @NonNull String packageName, + @NonNull MacAddress macAddress) { + if (!checkFeaturePresent()) { + return false; + } + Objects.requireNonNull(packageName, "package name cannot be null"); + Objects.requireNonNull(macAddress, "mac address cannot be null"); + + UserHandle user = android.os.Process.myUserHandle(); + try { + return mService.createAssociation( + packageName, macAddress.toString(), user.getIdentifier()); + } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } diff --git a/core/java/android/companion/ICompanionDeviceManager.aidl b/core/java/android/companion/ICompanionDeviceManager.aidl index 95d3515abb80..83db35872f74 100644 --- a/core/java/android/companion/ICompanionDeviceManager.aidl +++ b/core/java/android/companion/ICompanionDeviceManager.aidl @@ -51,4 +51,6 @@ interface ICompanionDeviceManager { void unregisterDevicePresenceListenerService(in String packageName, in String deviceAddress); boolean canPairWithoutPrompt(in String packageName, in String deviceMacAddress, int userId); + + boolean createAssociation(in String packageName, in String macAddress, int userId); } |
