From 604110338443cc5b881198c04af375345d037ddf Mon Sep 17 00:00:00 2001 From: q30043944 Date: Sat, 6 Sep 2025 17:38:02 +0800 Subject: [PATCH] =?UTF-8?q?logOut=E4=BA=8B=E4=BB=B6=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: q30043944 --- services/service/src/device_manager_service.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/services/service/src/device_manager_service.cpp b/services/service/src/device_manager_service.cpp index 7bfe6eae1..504ce2663 100644 --- a/services/service/src/device_manager_service.cpp +++ b/services/service/src/device_manager_service.cpp @@ -2542,14 +2542,23 @@ void DeviceManagerService::HandleAccountLogout(int32_t userId, const std::string GetDevUdid(localUdidTemp, DEVICE_UUID_LENGTH); std::string localUdid = std::string(localUdidTemp); deviceMap = dmServiceImpl_->GetDeviceIdAndUserId(userId, accountId); + std::vector peerHOUdids; + GetHoOsTypeUdids(peerHOUdids); + std::vector dualPeerUdids; for (const auto &item : deviceMap) { + if (find(peerHOUdids.begin(), peerHOUdids.end(), item.first) != peerHOUdids.end()) { + LOGI("dualUdid: %{public}s", GetAnonyString(item.first).c_str()); + dualPeerUdids.emplace_back(item.first); + } peerUdids.emplace_back(item.first); } - if (!peerUdids.empty()) { + if (!dualPeerUdids.empty()) { //logout notify cast+ if (IsDMServiceAdapterResidentLoad()) { dmServiceImplExtResident_->AccountIdLogout(userId, accountId, peerUdids); } + } + if (!peerUdids.empty()) { char accountIdHash[DM_MAX_DEVICE_ID_LEN] = {0}; if (Crypto::GetAccountIdHash(accountId, reinterpret_cast(accountIdHash)) != DM_OK) { LOGE("GetAccountHash failed."); -- Gitee