Merge "HwBinder: fail gracefully for device w/o hwbinder" am: 380697ca79

am: b6022b9fa0

Change-Id: I7135d790ed299f21975c5b27b534714d83ccf440
This commit is contained in:
Steven Moreland
2016-12-22 20:53:52 +00:00
committed by android-build-merger

View File

@@ -242,9 +242,19 @@ static void JHwBinder_native_registerService(
using android::hidl::manager::V1_0::IServiceManager; using android::hidl::manager::V1_0::IServiceManager;
sp<hardware::IBinder> binder = JHwBinder::GetNativeContext(env, thiz); sp<hardware::IBinder> binder = JHwBinder::GetNativeContext(env, thiz);
/* TODO(b/33440494) this is not right */ /* TODO(b/33440494) this is not right */
sp<hidl::base::V1_0::IBase> base = new hidl::base::V1_0::BpBase(binder); sp<hidl::base::V1_0::IBase> base = new hidl::base::V1_0::BpBase(binder);
bool ok = hardware::defaultServiceManager()->add(
auto manager = hardware::defaultServiceManager();
if (manager == nullptr) {
LOG(ERROR) << "Could not get hwservicemanager.";
signalExceptionForError(env, UNKNOWN_ERROR);
return;
}
bool ok = manager->add(
interfaceChain, interfaceChain,
serviceName, serviceName,
base); base);
@@ -289,8 +299,16 @@ static jobject JHwBinder_native_getService(
<< serviceName << serviceName
<< "'"; << "'";
auto manager = hardware::defaultServiceManager();
if (manager == nullptr) {
LOG(ERROR) << "Could not get hwservicemanager.";
signalExceptionForError(env, UNKNOWN_ERROR);
return NULL;
}
sp<hardware::IBinder> service; sp<hardware::IBinder> service;
hardware::defaultServiceManager()->get( manager->get(
ifaceName, ifaceName,
serviceName, serviceName,
[&service](sp<hidl::base::V1_0::IBase> out) { [&service](sp<hidl::base::V1_0::IBase> out) {