admin管理员组文章数量:1666897
//申请hidl_death_recipient的子类
struct CameraPolicyServiceClient:
virtual public hardware::hidl_death_recipient
{
CameraPolicyServiceClient(sp<hardware::camera::device::V1_0::ICameraDevice> &interface);
~CameraPolicyServiceClient();
status_t initialize();
// hidl_death_recipient interface - this locks the parent mInterfaceMutex
virtual void serviceDied(uint64_t cookie, const wp<hidl::base::V1_0::IBase>& who) override;
const sp<hardware::camera::device::V1_0::ICameraDevice> mInterface;
};
//重写它的 serviceDied() 方法。
//实例化一个 hidl_death_recipient 子类对象。
CameraHardwareInterface::CameraPolicyServiceClient::CameraPolicyServiceClient(
sp<hardware::camera::device::V1_0::ICameraDevice> &interface) :
mInterface(interface){
}
void CameraHardwareInterface::CameraPolicyServiceClient::serviceDied(uint64_t cookie,
const wp<hidl::base::V1_0::IBase>& who) {
(void) who;
//... do something,cookie可以自定义,只要和linkToDeath保持一致就行
ALOGW("%s: Unexpected serviceDied cookie %" PRIu64 "" ,__FUNCTION__, cookie);
}
status_t CameraHardwareInterface::CameraPolicyServiceClient::initialize() {
//调用服务的方法 linkToDeath() 给监视器,传入 IDeathRecipient 的接口对象。
hardware::Return<bool> linked = mInterface->linkToDeath(this,0);
ALOGE(" CameraPolicyServiceClient::initialize");
if (!linked.isOk()) {
ALOGE("%s: Transaction error in linking to ",__FUNCTION__);
} else if (!linked) {
ALOGE("%s: Unable to linkToDeath",__FUNCTION__);
}
return OK;
}
CameraHardwareInterface::CameraPolicyServiceClient::~CameraPolicyServiceClient(){
}
google 的介绍: https://source.android.google/devices/architecture/hidl/services
本文标签: 实例通知HIDLhidldeathrecipient
版权声明:本文标题:HIDL服务死亡通知实例 hidl_death_recipient 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1730077095a1221922.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论