下面的流程图展示了外部进程调用该服务的流程。其中 GetProxy 方法会向 samgr 请求服务的代理实例,并通过接口转换函数 iface_cast 将其转换为自己进程内的 HelloServiceProxy 类型的实例 proxy,图中的虚线对应 IPC 通信,其具体的实现机制在此不在展开介绍。 2.3 分布式 SA 上述SA 的启动及调用均为本地服务,下面来...
下面的流程图展示了外部进程调用该服务的流程。其中 GetProxy 方法会向 samgr 请求服务的代理实例,并通过接口转换函数 iface_cast 将其转换为自己进程内的 HelloServiceProxy 类型的实例 proxy,图中的虚线对应 IPC 通信,其具体的实现机制在此不在展开介绍。 2.3 分布式 SA 上述SA 的启动及调用均为本地服务,下面来...
(3)显示屏亮度获取客户端实现 DisplayPowerMgrClient首先会调用GetProxy方法,GetProxy会通过GetSystemAbilityManager方法获取SystemAbilityManager实例,然后通过CheckSystemAbility方法检查对应的SA是否存在,并返回remoteObject对象,最后通过iface_cast构造proxy对象,此时创建了PowerMgrProxy实例。 然后DisplayPowerMgrClient会将亮度获取...
// 定义静态变量,才能通过iface_cast创建一个包含IPCObjectProxy的xxxServiceProxy对象staticinlineBrokerDelegator<xxxServiceProxy>delegator_; 1. 2. 4.4 客户端获取注册信息 复制 autosaMgr=SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();sptr<IRemoteObject>object=saMgr->GetSystemAbility(SaId)...
= nullptr) { sptr<CameraHostProxy> hostSptr = iface_cast<CameraHostProxy>(remote); // 将CameraHostProxy对象返回给调用者,该对象中包含OpenCamera()等方法。 return hostSptr; } HDF_LOGE("%s: GetService failed! serviceName = %s", __func__, serviceName); } while(false); HDF_LOGE("%s: ...
= nullptr) {sendCallback = iface_cast(remoteSendCallback);}if (remoteDeliveryCallback != nullptr) {deliveryCallback = iface_cast(remoteDeliveryCallback);}TELEPHONY_LOGI("MessageID::TEXT_BASED_SMS_DELIVERY %{public}d", slotId);SendMessage(slotId, desAddr, scAddr, text, sendCallback, ...
();}void MainThread::Attach(){if(!ConnectToAppMgr()){return;}mainThreadState_=MainThreadState::ATTACH;}bool MainThread::ConnectToAppMgr(){auto object=OHOS::DelayedSingleton<SysMrgClient>::GetInstance()->GetSystemAbility(APP_MGR_SERVICE_ID);appMgr_=iface_cast<IAppMgr>(object);appMgr_->...
("failed to get DEVICE_SERVICE");returnfalse;}//使用IRemoteObject构造WifiDeviceProxyclient_=iface_cast<IWifiDevice>(object);if(client_==nullptr){client_=new(std::nothrow)WifiDeviceProxy(object);//构造代理}if(client_==nullptr){WIFI_LOGE("wifi device init failed. %{public}d",systemAbility...
auto serviceImpl = IFaceAuthInterface::Get(true); if (serviceImpl == nullptr) { IAM_LOGE("failed to get of implement service"); delete hdfFaceAuthInterfaceHost; return HDF_FAILURE; } hdfFaceAuthInterfaceHost->stub = OHOS::HDI::ObjectCollector::GetInstance().GetOrNewObject(serviceImpl, IFac...
ShutDownDevice首先会调用Connect方法,Connect会通过GetSystemAbilityManager方法获取SystemAbilityManager实例,然后通过CheckSystemAbility方法检查对应的SA是否存在,并返回remoteObject对象,最后通过iface_cast构造proxy对象,此时创建了PowerMgrProxy实例,最后ShutDownDevice调用PowerMgrProxy的ShutDownDevice方法; ...