From 793291315fc706a3682dbfbc039264da45c70b6d Mon Sep 17 00:00:00 2001 From: wuzhihuitmac Date: Mon, 29 Apr 2024 20:09:44 +0800 Subject: [PATCH] Add NotifyProcessStatus for vibrator Signed-off-by: wuzhihuitmac Change-Id: Ibade638c47e44ee3706b37cf1818880aa3fbab26 --- bundle.json | 1 + services/miscdevice_service/BUILD.gn | 2 ++ .../include/miscdevice_service.h | 1 + .../src/miscdevice_service.cpp | 19 +++++++++++++++++++ 4 files changed, 23 insertions(+) diff --git a/bundle.json b/bundle.json index 4da2574..99c07cf 100644 --- a/bundle.json +++ b/bundle.json @@ -34,6 +34,7 @@ "hitrace", "ipc", "init", + "memmgr", "napi", "safwk", "samgr", diff --git a/services/miscdevice_service/BUILD.gn b/services/miscdevice_service/BUILD.gn index 526250e..f3a2d58 100644 --- a/services/miscdevice_service/BUILD.gn +++ b/services/miscdevice_service/BUILD.gn @@ -68,6 +68,7 @@ ohos_shared_library("libmiscdevice_service") { "hisysevent:libhisysevent", "hitrace:hitrace_meter", "ipc:ipc_single", + "memmgr:memmgrclient", "safwk:system_ability_fwk", "samgr:samgr_proxy", ] @@ -144,6 +145,7 @@ ohos_shared_library("libmiscdevice_service_static") { "hisysevent:libhisysevent", "hitrace:hitrace_meter", "ipc:ipc_single", + "memmgr:memmgrclient", "safwk:system_ability_fwk", "samgr:samgr_proxy", ] diff --git a/services/miscdevice_service/include/miscdevice_service.h b/services/miscdevice_service/include/miscdevice_service.h index cfeb4f1..f965f0c 100644 --- a/services/miscdevice_service/include/miscdevice_service.h +++ b/services/miscdevice_service/include/miscdevice_service.h @@ -98,6 +98,7 @@ private: void SaveClientPid(const sptr &vibratorServiceClient, int32_t pid); int32_t FindClientPid(const sptr &vibratorServiceClient); void DestroyClientPid(const sptr &vibratorServiceClient); + void OnAddSystemAbility(int32_t systemAbilityId, const std::string &deviceId) override; VibratorHdiConnection &vibratorHdiConnection_ = VibratorHdiConnection::GetInstance(); LightHdiConnection &lightHdiConnection_ = LightHdiConnection::GetInstance(); bool lightExist_; diff --git a/services/miscdevice_service/src/miscdevice_service.cpp b/services/miscdevice_service/src/miscdevice_service.cpp index f976e12..0275ab1 100644 --- a/services/miscdevice_service/src/miscdevice_service.cpp +++ b/services/miscdevice_service/src/miscdevice_service.cpp @@ -20,6 +20,9 @@ #include #include "death_recipient_template.h" +#include "iservice_registry.h" +#include "mem_mgr_client.h" +#include "mem_mgr_proxy.h" #include "system_ability_definition.h" #include "sensors_errors.h" @@ -60,6 +63,10 @@ constexpr int32_t VIBRATOR_ID = 0; constexpr int32_t BASE_YEAR = 1900; constexpr int32_t BASE_MON = 1; constexpr int32_t CONVERSION_RATE = 1000; +constexpr int32_t SA_ID = 3602; +constexpr int32_t SYSTEM_STATUS_START = 1; +constexpr int32_t SYSTEM_STATUS_STOP = 0; +constexpr int32_t SYSTEM_PROCESS_TYPE = 1; VibratorCapacity g_capacity; #ifdef OHOS_BUILD_ENABLE_VIBRATOR_CUSTOM const std::string PHONE_TYPE = "phone"; @@ -86,6 +93,15 @@ void MiscdeviceService::OnDump() MISC_HILOGI("Ondump is invoked"); } +void MiscdeviceService::OnAddSystemAbility(int32_t systemAbilityId, const std::string &deviceId) +{ + MISC_HILOGI("OnAddSystemAbility systemAbilityId:%{public}d", systemAbilityId); + if (systemAbilityId == MEMORY_MANAGER_SA_ID) { + Memory::MemMgrClient::GetInstance().NotifyProcessStatus(getpid(), + SYSTEM_PROCESS_TYPE, SYSTEM_STATUS_START, SA_ID); + } +} + void MiscdeviceService::OnStart() { CALL_LOG_ENTER; @@ -114,6 +130,7 @@ void MiscdeviceService::OnStart() ret.first->second = vibratorExist_; } state_ = MiscdeviceServiceState::STATE_RUNNING; + AddSystemAbilityListener(MEMORY_MANAGER_SA_ID); } void MiscdeviceService::OnStartFuzz() @@ -206,6 +223,8 @@ void MiscdeviceService::OnStop() if (ret != ERR_OK) { MISC_HILOGE("Destroy hdi connection fail"); } + Memory::MemMgrClient::GetInstance().NotifyProcessStatus(getpid(), + SYSTEM_PROCESS_TYPE, SYSTEM_STATUS_STOP, SA_ID); } bool MiscdeviceService::ShouldIgnoreVibrate(const VibrateInfo &info) -- Gitee