diff --git a/services/src/sensor_service.cpp b/services/src/sensor_service.cpp index b2c1290faabf504435401ca4c8834cb2ebe4c31b..a098d60978ed31a907385d84d8f0084e69d31081 100644 --- a/services/src/sensor_service.cpp +++ b/services/src/sensor_service.cpp @@ -15,6 +15,7 @@ #include "sensor_service.h" +#include #include #include #include @@ -90,7 +91,14 @@ void SensorService::OnAddSystemAbility(int32_t systemAbilityId, const std::strin } #endif // MSDP_MOTION_ENABLE if (systemAbilityId == DISPLAY_MANAGER_SERVICE_SA_ID) { - uint32_t status = static_cast(std::stoi(GetDmsDeviceStatus())); + std::string statusStr = GetDmsDeviceStatus(); + int32_t statusNum; + auto res = std::from_chars(statusStr.data(), statusStr.data() + statusStr.size(), statusNum); + if (res.ec != std::errc()) { + SEN_HILOGE("Failed to convert string %{public}s to number", statusStr.c_str()); + return; + } + uint32_t status = static_cast(statusNum); clientInfo_.SetDeviceStatus(status); SEN_HILOGI("GetDeviceStatus, deviceStatus:%{public}d", status); }