From e7a967d383c4002091947ac0ecf6954c1eaa401a Mon Sep 17 00:00:00 2001 From: zhouge Date: Tue, 20 Jun 2023 10:18:47 +0800 Subject: [PATCH] set deviceid when connect ability Signed-off-by: zhouge Change-Id: Iecbcac0425bae3f1de71fc9998a5517cc5e4b492 --- .../driver_controller/driver_extension_controller.h | 7 +++++-- .../driver_extension_controller.cpp | 13 +++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/services/native/driver_extension_manager/include/driver_controller/driver_extension_controller.h b/services/native/driver_extension_manager/include/driver_controller/driver_extension_controller.h index 9a6cb00..e76b825 100644 --- a/services/native/driver_extension_manager/include/driver_controller/driver_extension_controller.h +++ b/services/native/driver_extension_manager/include/driver_controller/driver_extension_controller.h @@ -32,12 +32,14 @@ public: int32_t ConnectDriverExtension( std::string bundleName, std::string abilityName, - std::shared_ptr callback + std::shared_ptr callback, + uint32_t deviceId = 0 ); int32_t DisconnectDriverExtension( std::string bundleName, std::string abilityName, - std::shared_ptr callback + std::shared_ptr callback, + uint32_t deviceId = 0 ); class DriverExtensionAbilityConnection; }; @@ -45,6 +47,7 @@ public: struct DrvExtConnectionInfo { std::string bundleName_; std::string abilityName_; + uint32_t deviceId_; sptr connectInner_; }; diff --git a/services/native/driver_extension_manager/src/driver_controller/driver_extension_controller.cpp b/services/native/driver_extension_manager/src/driver_controller/driver_extension_controller.cpp index 98ea809..1a1f2cb 100644 --- a/services/native/driver_extension_manager/src/driver_controller/driver_extension_controller.cpp +++ b/services/native/driver_extension_manager/src/driver_controller/driver_extension_controller.cpp @@ -112,7 +112,8 @@ int32_t DriverExtensionController::StopDriverExtension( int32_t DriverExtensionController::ConnectDriverExtension( std::string bundleName, std::string abilityName, - std::shared_ptr callback + std::shared_ptr callback, + uint32_t deviceId ) { EDM_LOGI(MODULE_EA_MGR, "Begin to Connect DriverExtension, bundle:%{public}s, ability:%{public}s", \ @@ -130,6 +131,7 @@ int32_t DriverExtensionController::ConnectDriverExtension( callback->info_ = make_shared(); callback->info_->bundleName_ = bundleName; callback->info_->abilityName_ = abilityName; + callback->info_->deviceId_ = deviceId; callback->info_->connectInner_ = new DriverExtensionAbilityConnection(); callback->info_->connectInner_->callback_ = callback; auto abmc = AAFwk::AbilityManagerClient::GetInstance(); @@ -139,6 +141,7 @@ int32_t DriverExtensionController::ConnectDriverExtension( } AAFwk::Want want; want.SetElementName(bundleName, abilityName); + want.SetParam("deviceId", static_cast(deviceId)); auto ret = abmc->ConnectAbility(want, callback->info_->connectInner_, -1); if (ret != 0) { EDM_LOGE(MODULE_EA_MGR, "ConnectExtensionAbility failed %{public}d", ret); @@ -151,7 +154,8 @@ int32_t DriverExtensionController::ConnectDriverExtension( int32_t DriverExtensionController::DisconnectDriverExtension( std::string bundleName, std::string abilityName, - std::shared_ptr callback + std::shared_ptr callback, + uint32_t deviceId ) { EDM_LOGI(MODULE_EA_MGR, "Begin to Disconnect DriverExtension, bundle:%{public}s, ability:%{public}s", \ @@ -165,8 +169,9 @@ int32_t DriverExtensionController::DisconnectDriverExtension( return EDM_ERR_INVALID_PARAM; } if (callback->info_->bundleName_ != bundleName || - callback->info_->abilityName_ != abilityName) { - EDM_LOGE(MODULE_EA_MGR, "bundleName or abilityName not match info in callback"); + callback->info_->abilityName_ != abilityName || + callback->info_->deviceId_ != deviceId) { + EDM_LOGE(MODULE_EA_MGR, "bundleName, abilityName, or deviceId not match info in callback"); return EDM_ERR_INVALID_OBJECT; } auto abmc = AAFwk::AbilityManagerClient::GetInstance(); -- Gitee