From f5f80111b7bc8f1efd4d9628aa109003877a38c0 Mon Sep 17 00:00:00 2001 From: wuxiaodong02 Date: Mon, 27 Feb 2023 10:08:54 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8DSA=E9=80=80=E5=87=BA=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wuxiaodong02 --- common/utils/include/constants.h | 1 + .../src/distributed_hardware_manager_factory.cpp | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/common/utils/include/constants.h b/common/utils/include/constants.h index d9add7a7..11ad4183 100644 --- a/common/utils/include/constants.h +++ b/common/utils/include/constants.h @@ -35,6 +35,7 @@ namespace DistributedHardware { constexpr int32_t MODE_ENABLE = 0; constexpr int32_t MODE_DISABLE = 1; constexpr uint32_t MAX_SWITCH_SIZE = 256; + constexpr uint32_t DISTRIBUTED_HARDWARE_FWK_SA_ID = 4801; const std::string LOW_LATENCY_KEY = "identity"; const std::u16string DHMS_STUB_INTERFACE_TOKEN = u"ohos.distributedhardware.accessToken"; const std::string COMPONENTSLOAD_PROFILE_PATH = diff --git a/services/distributedhardwarefwkservice/src/distributed_hardware_manager_factory.cpp b/services/distributedhardwarefwkservice/src/distributed_hardware_manager_factory.cpp index 1ed0dfd8..c381e1c3 100644 --- a/services/distributedhardwarefwkservice/src/distributed_hardware_manager_factory.cpp +++ b/services/distributedhardwarefwkservice/src/distributed_hardware_manager_factory.cpp @@ -33,6 +33,7 @@ #include "distributed_hardware_errno.h" #include "distributed_hardware_log.h" #include "distributed_hardware_manager.h" +#include "iservice_registry.h" namespace OHOS { namespace DistributedHardware { @@ -76,7 +77,15 @@ void DistributedHardwareManagerFactory::CheckExitSAOrNot() HiSysEventWriteMsg(DHFWK_EXIT_END, OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR, "dhfwk sa exit end."); - _Exit(0); + auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); + if (systemAbilityMgr == nullptr) { + DHLOGE("systemAbilityMgr is null"); + } + int32_t ret = systemAbilityMgr->UnloadSystemAbility(DISTRIBUTED_HARDWARE_FWK_SA_ID); + if (ret != DH_FWK_SUCCESS) { + DHLOGE("systemAbilityMgr UnLoadSystemAbility failed, ret: %d", ret); + } + DHLOGI("systemAbilityMgr UnLoadSystemAbility success"); } DHLOGI("After uninit, DM report devices online, reinit"); -- Gitee