diff options
| author | 2020-09-25 19:19:47 +0000 | |
|---|---|---|
| committer | 2020-09-25 19:19:47 +0000 | |
| commit | 37fbf2de102d888d65c63c4643756b963ae2bc77 (patch) | |
| tree | 2214ec40f40c1bb839bc1b1974eda551f1568415 /libs/binder/IServiceManager.cpp | |
| parent | 3b2f56cfc1a6d4c2d8001b1dd3b322e6788c3d60 (diff) | |
| parent | b23efff6bfd0cc1d9a864ee8100a648f2f5ed6bc (diff) | |
Merge "servicemanager: vintf declared API" am: 8fd083ca55 am: a57fdf911b am: 212edd6901 am: b23efff6bf
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1435031
Change-Id: I4a9c3ac5aab3d67b34beea0126d283499d028ff9
Diffstat (limited to 'libs/binder/IServiceManager.cpp')
| -rw-r--r-- | libs/binder/IServiceManager.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/binder/IServiceManager.cpp b/libs/binder/IServiceManager.cpp index 9aa82d908c..6d728dc6b1 100644 --- a/libs/binder/IServiceManager.cpp +++ b/libs/binder/IServiceManager.cpp @@ -74,6 +74,7 @@ public: Vector<String16> listServices(int dumpsysPriority) override; sp<IBinder> waitForService(const String16& name16) override; bool isDeclared(const String16& name) override; + Vector<String16> getDeclaredInstances(const String16& interface) override; // for legacy ABI const String16& getInterfaceDescriptor() const override { @@ -373,4 +374,18 @@ bool ServiceManagerShim::isDeclared(const String16& name) { return declared; } +Vector<String16> ServiceManagerShim::getDeclaredInstances(const String16& interface) { + std::vector<std::string> out; + if (!mTheRealServiceManager->getDeclaredInstances(String8(interface).c_str(), &out).isOk()) { + return {}; + } + + Vector<String16> res; + res.setCapacity(out.size()); + for (const std::string& instance : out) { + res.push(String16(instance.c_str())); + } + return res; +} + } // namespace android |