diff --git a/services/location_geocode/geocode/source/geo_convert_service.cpp b/services/location_geocode/geocode/source/geo_convert_service.cpp index 5fb27796..212fc551 100644 --- a/services/location_geocode/geocode/source/geo_convert_service.cpp +++ b/services/location_geocode/geocode/source/geo_convert_service.cpp @@ -317,6 +317,10 @@ LocationErrCode GeoConvertService::SetReverseGeocodingMockInfo( bool GeoConvertService::CancelIdleState() { + SystemAbilityState state = GetAbilityState(); + if (state != SystemAbilityState::IDLE) { + return true; + } bool ret = CancelIdle(); if (!ret) { LBSLOGE(GEO_CONVERT, "%{public}s cancel idle failed!", __func__); diff --git a/services/location_gnss/gnss/source/gnss_ability.cpp b/services/location_gnss/gnss/source/gnss_ability.cpp index e13ab445..ad84f265 100644 --- a/services/location_gnss/gnss/source/gnss_ability.cpp +++ b/services/location_gnss/gnss/source/gnss_ability.cpp @@ -197,6 +197,10 @@ LocationErrCode GnssAbility::SetEnable(bool state) bool GnssAbility::CancelIdleState() { + SystemAbilityState state = GetAbilityState(); + if (state != SystemAbilityState::IDLE) { + return true; + } bool ret = CancelIdle(); if (!ret) { LBSLOGE(GNSS, "%{public}s cancel idle failed!", __func__); diff --git a/services/location_locator/locator/source/locator_ability.cpp b/services/location_locator/locator/source/locator_ability.cpp index 0ce6864e..bc61b7a0 100644 --- a/services/location_locator/locator/source/locator_ability.cpp +++ b/services/location_locator/locator/source/locator_ability.cpp @@ -392,6 +392,10 @@ void LocatorAbility::UpdateSaAbilityHandler() bool LocatorAbility::CancelIdleState() { + SystemAbilityState state = GetAbilityState(); + if (state != SystemAbilityState::IDLE) { + return true; + } bool ret = CancelIdle(); if (!ret) { LBSLOGE(LOCATOR, "%{public}s cancel idle failed!", __func__); diff --git a/services/location_network/network/source/network_ability.cpp b/services/location_network/network/source/network_ability.cpp index 18f61da0..2d12a1db 100644 --- a/services/location_network/network/source/network_ability.cpp +++ b/services/location_network/network/source/network_ability.cpp @@ -230,6 +230,10 @@ LocationErrCode NetworkAbility::SetEnable(bool state) bool NetworkAbility::CancelIdleState() { + SystemAbilityState state = GetAbilityState(); + if (state != SystemAbilityState::IDLE) { + return true; + } bool ret = CancelIdle(); if (!ret) { LBSLOGE(NETWORK, "%{public}s cancel idle failed!", __func__); diff --git a/services/location_passive/passive/source/passive_ability.cpp b/services/location_passive/passive/source/passive_ability.cpp index 8ff5d9d4..1f3456f7 100644 --- a/services/location_passive/passive/source/passive_ability.cpp +++ b/services/location_passive/passive/source/passive_ability.cpp @@ -103,6 +103,10 @@ LocationErrCode PassiveAbility::SetEnable(bool state) bool PassiveAbility::CancelIdleState() { + SystemAbilityState state = GetAbilityState(); + if (state != SystemAbilityState::IDLE) { + return true; + } bool ret = CancelIdle(); if (!ret) { LBSLOGE(PASSIVE, "%{public}s cancel idle failed!", __func__);