diff options
| author | 2020-09-25 19:52:10 +0000 | |
|---|---|---|
| committer | 2020-09-25 19:52:10 +0000 | |
| commit | 4be3ece8e5304601599864b84d5ace13c5c5eaa9 (patch) | |
| tree | 1e4f2e9b8f00f0d61e2702e171403df6885793d7 | |
| parent | d832e6dcd75281b06e09ddf9d62aeedf6cc576e4 (diff) | |
| parent | 4acdea4cb82586e2988b00e3d5380574b22e6196 (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.java | 15 | ||||
| -rw-r--r-- | core/java/android/os/ServiceManagerNative.java | 4 |
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(); |