diff --git a/core/jni/android_os_HwBinder.cpp b/core/jni/android_os_HwBinder.cpp index 10090a1f69429..23a988a3dcc06 100644 --- a/core/jni/android_os_HwBinder.cpp +++ b/core/jni/android_os_HwBinder.cpp @@ -25,6 +25,8 @@ #include #include +#include +#include #include #include #include @@ -239,11 +241,11 @@ static void JHwBinder_native_registerService( using android::hidl::manager::V1_0::IServiceManager; sp binder = JHwBinder::GetNativeContext(env, thiz); - + sp base = hidl::base::V1_0::IHwBase::asInterface(binder); bool ok = hardware::defaultServiceManager()->add( interfaceChain, serviceName, - binder); + base); env->ReleaseStringUTFChars(serviceNameObj, serviceName); serviceName = NULL; @@ -289,8 +291,10 @@ static jobject JHwBinder_native_getService( hardware::defaultServiceManager()->get( ifaceName, serviceName, - [&service](sp out) { - service = out; + [&service](sp out) { + service = hardware::toBinder< + hidl::base::V1_0::IBase, hidl::base::V1_0::IHwBase + >(out); }); env->ReleaseStringUTFChars(ifaceNameObj, ifaceName);