summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2020-09-25 19:52:10 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-09-25 19:52:10 +0000
commit4be3ece8e5304601599864b84d5ace13c5c5eaa9 (patch)
tree1e4f2e9b8f00f0d61e2702e171403df6885793d7
parentd832e6dcd75281b06e09ddf9d62aeedf6cc576e4 (diff)
parent4acdea4cb82586e2988b00e3d5380574b22e6196 (diff)
Merge "ServiceManager: add getDeclaredInstances" am: 9ff2444ba7 am: b1b830369e am: 7ceee368ee am: f5f4344d2f am: 4acdea4cb8
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1436518 Change-Id: I0cffc23dc0d96cacd7c546b42391af33f54ada80
-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();