summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2020-09-25 19:09:52 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-09-25 19:09:52 +0000
commitf5f4344d2fa99d249e8d9ae01846190e6dcd024b (patch)
treed7f295077c392054d0a9f6d0f706354962aac323 /core/java
parentd98ecc564a490f2d93e3549ab272ae11d66c51d6 (diff)
parent7ceee368ee4fd043caea47e52217397f12312db5 (diff)
Merge "ServiceManager: add getDeclaredInstances" am: 9ff2444ba7 am: b1b830369e am: 7ceee368ee
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1436518 Change-Id: I7755509b329914c491a205f843e731694b02ce84
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/os/ServiceManager.java15
-rw-r--r--core/java/android/os/ServiceManagerNative.java4
2 files changed, 19 insertions, 0 deletions
diff --git a/core/java/android/os/ServiceManager.java b/core/java/android/os/ServiceManager.java
index b654707a683b..35e7bad83736 100644
--- a/core/java/android/os/ServiceManager.java
+++ b/core/java/android/os/ServiceManager.java
@@ -235,6 +235,21 @@ public final class ServiceManager {
}
/**
+ * Returns the list of declared instances for an interface.
+ *
+ * @return true if the service is declared somewhere (eg. VINTF manifest) and
+ * waitForService should always be able to return the service.
+ */
+ public static String[] getDeclaredInstances(@NonNull String iface) {
+ try {
+ return getIServiceManager().getDeclaredInstances(iface);
+ } catch (RemoteException e) {
+ Log.e(TAG, "error in getDeclaredInstances", e);
+ return null;
+ }
+ }
+
+ /**
* Returns the specified service from the service manager.
*
* If the service is not running, servicemanager will attempt to start it, and this function
diff --git a/core/java/android/os/ServiceManagerNative.java b/core/java/android/os/ServiceManagerNative.java
index 91b56fbbc38e..b70b6b5d209e 100644
--- a/core/java/android/os/ServiceManagerNative.java
+++ b/core/java/android/os/ServiceManagerNative.java
@@ -90,6 +90,10 @@ class ServiceManagerProxy implements IServiceManager {
return mServiceManager.isDeclared(name);
}
+ public String[] getDeclaredInstances(String iface) throws RemoteException {
+ return mServiceManager.getDeclaredInstances(iface);
+ }
+
public void registerClientCallback(String name, IBinder service, IClientCallback cb)
throws RemoteException {
throw new RemoteException();