summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorEugene Susla <eugenesusla@google.com>2021-03-24 20:56:54 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-03-24 20:56:54 +0000
commit4af392fe39a54eab078197bf6479c70cd8548b06 (patch)
treecbee18b5261c3b91b740099a487ccd62d678a627 /core/java/android
parent8d95267eea1baba0847e316dc48ec716af0fe5d0 (diff)
parent120de6c1c4c1597f9da18925a5bac8a312557866 (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.java26
-rw-r--r--core/java/android/companion/ICompanionDeviceManager.aidl2
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);
}