diff --git a/services/common/include/cellular_call_rdb_helper.h b/services/common/include/cellular_call_rdb_helper.h index 780a200375a9d1cbacc8d54309e7910a5eae82f3..3cc21e27e01b767d796f9ec1b6d3a85bd54b244c 100644 --- a/services/common/include/cellular_call_rdb_helper.h +++ b/services/common/include/cellular_call_rdb_helper.h @@ -38,6 +38,7 @@ class CellularCallRdbHelper : public DelayedSingleton { public: int32_t QueryEccList(const std::string &numeric, std::vector &eccVec); + void RegisterListenState(sptr &settingsCallback); private: std::shared_ptr CreateDataAbilityHelper(); diff --git a/services/common/src/cellular_call_rdb_helper.cpp b/services/common/src/cellular_call_rdb_helper.cpp index 586753aadbe4c656a49ffdd6b185c3151980a8b5..73e86ff68fca25c3e1c584eb78f195b973dcfac2 100644 --- a/services/common/src/cellular_call_rdb_helper.cpp +++ b/services/common/src/cellular_call_rdb_helper.cpp @@ -89,5 +89,20 @@ int32_t CellularCallRdbHelper::QueryEccList(const std::string &numeric, std::vec dataShareHelper = nullptr; return TELEPHONY_SUCCESS; } + +void CellularCallRdbHelper::RegisterListenState(sptr &settingsCallback) +{ + if (settingsCallback == nullptr) { + return; + } + auto dataShareHelper = CreateDataAbilityHelper(); + if (dataShareHelper == nullptr) { + TELEPHONY_LOGE("dataShareHelper is nullptr"); + return; + } + OHOS::Uri uri_listen(GLOBAL_ECC_URI_SELECTION); + dataShareHelper->RegisterObserver(uri_listen, settingsCallback); + dataShareHelper->Release(); +} } // namespace Telephony } // namespace OHOS diff --git a/services/manager/include/cellular_call_service.h b/services/manager/include/cellular_call_service.h index 76c61a06a3fbe873a28d36ecf10624dcd0843ff2..5e3066d109f5c513b6223d29684552cde5aa1050 100755 --- a/services/manager/include/cellular_call_service.h +++ b/services/manager/include/cellular_call_service.h @@ -28,6 +28,8 @@ #include "singleton.h" #include "system_ability.h" #include "system_ability_status_change_stub.h" +#include "cellular_call_rdb_helper.h" +#include "data_ability_observer_stub.h" namespace OHOS { namespace Telephony { @@ -757,6 +759,7 @@ private: #endif void SubscribeToEvents(const std::vector& events, int priority = 0, const std::string& permission = ""); + void RegisterEccListener(); private: enum class SatelliteState { @@ -782,6 +785,7 @@ private: #ifdef BASE_POWER_IMPROVEMENT_FEATURE std::shared_ptr strEnterEventResult_ = nullptr; #endif + sptr settingsCallback_ = nullptr; private: class SystemAbilityStatusChangeListener : public OHOS::SystemAbilityStatusChangeStub { @@ -796,6 +800,12 @@ private: std::shared_ptr cellularCallHandler_ = nullptr; int32_t count_ = 0; }; + class EmergencyInfoObserver : public AAFwk::DataAbilityObserverStub { + public: + EmergencyInfoObserver() = default; + virtual ~EmergencyInfoObserver() = default; + void OnChange() override; + }; }; } // namespace Telephony } // namespace OHOS diff --git a/services/manager/src/cellular_call_service.cpp b/services/manager/src/cellular_call_service.cpp index 970bc31fead038232f7aea946bae6989950aafe6..21748373d22c50001e37fb37f68793b5edf85f2f 100755 --- a/services/manager/src/cellular_call_service.cpp +++ b/services/manager/src/cellular_call_service.cpp @@ -79,6 +79,7 @@ bool CellularCallService::Init() // connect ims_service DelayedSingleton::GetInstance()->Init(); TELEPHONY_LOGD("CellularCallService::Init, init success"); + RegisterEccListener(); return true; } @@ -1752,5 +1753,19 @@ void CellularCallService::ProcessFinishCommonEvent() } } #endif + +void CellularCallService::RegisterEccListener() +{ + if (settingsCallback_ == nullptr) { + settingsCallback_ = sptr::MakeSptr(); + } + DelayedSingleton::GetInstance()->RegisterListenState(settingsCallback_); +} + +void CellularCallService::EmergencyInfoObserver::OnChange() +{ + CellularCallConfig config; + config.HandleEccListChange(); +} } // namespace Telephony } // namespace OHOS diff --git a/services/utils/include/cellular_call_config.h b/services/utils/include/cellular_call_config.h index a6d021fdf85043f73e17beab2e0341f9b581cfe4..984a1b3b5dec293e5a0d4d99fcbf6aed04387435 100644 --- a/services/utils/include/cellular_call_config.h +++ b/services/utils/include/cellular_call_config.h @@ -17,6 +17,7 @@ #define CELLULAR_CALL_CONFIG_H #include +#include #include #include "config_request.h" @@ -24,6 +25,7 @@ #include "operator_config_types.h" #include "sim_state_type.h" #include "telephony_log_wrapper.h" +#include "ffrt.h" namespace OHOS { namespace Telephony { @@ -475,6 +477,7 @@ public: * @return bool */ bool IsVolteSupport(int32_t slotId); + void HandleEccListChange(); private: static void InitDefaultOperatorConfig(); @@ -507,8 +510,18 @@ private: std::vector &callListWithCard, std::vector &callListNoCard); int32_t CheckHomeAndPresentState(int32_t slotId, bool &isHoamAndPresent); bool GetRoamingState(int32_t slotId); + bool RegisterListenState(); + bool UnRegisterListenState(); + bool ProcessHplmnEccList(int32_t slotId, std::string hplmn, bool &isHplmnEccList, + std::vector &callListWithCard, std::vector &callListNoCard); + bool ProcessCurrentPlmnEccList(int32_t slotId, std::string hplmn, + std::vector &callListWithCard, std::vector &callListNoCard); private: + struct EccList { + std::string plmn = ""; + std::vector eccInfoList = {}; + }; static std::map modeTempMap_; static std::map modeMap_; static std::map> eccListRadioMap_; @@ -543,6 +556,9 @@ private: bool isRoaming_ = false; }; static std::map networkServiceState_; + static EccList hplmnEccList_[2]; + static EccList currentPlmnEccList_[2]; + static ffrt::mutex plmnMutex_; }; } // namespace Telephony } // namespace OHOS diff --git a/services/utils/src/cellular_call_config.cpp b/services/utils/src/cellular_call_config.cpp index 01ddf368f9c76c4ba59a63f650389e2d0f7380bd..2cc34d45ff9ddf48d6f4c5198a21a0764677b54e 100644 --- a/services/utils/src/cellular_call_config.cpp +++ b/services/utils/src/cellular_call_config.cpp @@ -45,6 +45,7 @@ const int32_t SAVE_IMS_SWITCH_SUCCESS_NOT_CHANGED = 2; const int32_t INVALID_SIM_ID = 0; const int32_t IMS_GBA_BIT = 0x02; const int32_t SYSTEM_PARAMETER_LENGTH = 0x02; +const int32_t SLOT_NUM = 2; const int MCC_LEN = 3; const std::string LAST_ICCID_KEY = "persist.telephony.last_iccid"; const std::string IMSSWITCH_STATE = "persist.telephony.imsswitch"; @@ -79,6 +80,9 @@ std::map CellularCallConfig::curPlmn_; std::map CellularCallConfig::networkServiceState_; std::map CellularCallConfig::readyToCall_; bool CellularCallConfig::isOperatorConfigInit_ = false; +CellularCallConfig::EccList CellularCallConfig::hplmnEccList_[SLOT_NUM]; +CellularCallConfig::EccList CellularCallConfig::currentPlmnEccList_[SLOT_NUM]; +ffrt::mutex CellularCallConfig::plmnMutex_; void CellularCallConfig::InitDefaultOperatorConfig() { @@ -333,36 +337,25 @@ int32_t CellularCallConfig::CheckHomeAndPresentState(int32_t slotId, bool &isHom void CellularCallConfig::UpdateEccNumberList(int32_t slotId) { + std::lock_guard lock(plmnMutex_); std::u16string u16Hplmn = u""; CoreManagerInner::GetInstance().GetSimOperatorNumeric(slotId, u16Hplmn); std::string hplmn = Str16ToStr8(u16Hplmn); std::vector callListWithCard; std::vector callListNoCard; - std::vector eccVec; bool isHomeAndPresent = false; + bool isHplmnEccList = false; if (CheckHomeAndPresentState(slotId, isHomeAndPresent) != TELEPHONY_SUCCESS) { return; } if (!hplmn.empty() && isHomeAndPresent) { - OperatorConfig operatorConfig; - CoreManagerInner::GetInstance().GetOperatorConfigs(slotId, operatorConfig); - callListWithCard = operatorConfig.stringArrayValue[KEY_EMERGENCY_CALL_STRING_ARRAY]; - if (callListWithCard.empty()) { - DelayedSingleton::GetInstance()->QueryEccList(hplmn, eccVec); - GetEccListFromResult(eccVec, callListWithCard, callListNoCard); + if (ProcessHplmnEccList(slotId, hplmn, isHplmnEccList, callListWithCard, callListNoCard)) { + return; } } else { - if (curPlmn_[slotId].empty()) { - std::u16string u16Rplmn = CoreManagerInner::GetInstance().GetOperatorNumeric(slotId); - std::string rplmn = Str16ToStr8(u16Rplmn); - if (rplmn.empty()) { - TELEPHONY_LOGE("rplmn is empty"); - return; - } - curPlmn_[slotId] = rplmn; + if (ProcessCurrentPlmnEccList(slotId, hplmn, callListWithCard, callListNoCard)) { + return; } - DelayedSingleton::GetInstance()->QueryEccList(curPlmn_[slotId], eccVec); - GetEccListFromResult(eccVec, callListWithCard, callListNoCard); } std::vector eccInfoList; for (auto it : callListWithCard) { @@ -371,9 +364,57 @@ void CellularCallConfig::UpdateEccNumberList(int32_t slotId) for (auto it : callListNoCard) { eccInfoList.push_back(BuildDefaultEmergencyCall(it, SimpresentType::TYPE_NO_CARD)); } + if (isHplmnEccList) { + hplmnEccList_[slotId].eccInfoList = eccInfoList; + hplmnEccList_[slotId].plmn = hplmn; + } else { + currentPlmnEccList_[slotId].eccInfoList = eccInfoList; + currentPlmnEccList_[slotId].plmn = curPlmn_[slotId]; + } SetEmergencyCallList(slotId, eccInfoList); } +bool CellularCallConfig::ProcessHplmnEccList(int32_t slotId, std::string hplmn, bool &isHplmnEccList, + std::vector &callListWithCard, std::vector &callListNoCard) +{ + if (hplmnEccList_[slotId].plmn == hplmn) { + SetEmergencyCallList(slotId, hplmnEccList_[slotId].eccInfoList); + return true; + } + std::vector eccVec; + OperatorConfig operatorConfig; + CoreManagerInner::GetInstance().GetOperatorConfigs(slotId, operatorConfig); + callListWithCard = operatorConfig.stringArrayValue[KEY_EMERGENCY_CALL_STRING_ARRAY]; + if (callListWithCard.empty()) { + DelayedSingleton::GetInstance()->QueryEccList(hplmn, eccVec); + GetEccListFromResult(eccVec, callListWithCard, callListNoCard); + } + isHplmnEccList = true; + return false; +} + +bool CellularCallConfig::ProcessCurrentPlmnEccList(int32_t slotId, std::string hplmn, + std::vector &callListWithCard, std::vector &callListNoCard) +{ + if (curPlmn_[slotId].empty()) { + std::u16string u16Rplmn = CoreManagerInner::GetInstance().GetOperatorNumeric(slotId); + std::string rplmn = Str16ToStr8(u16Rplmn); + if (rplmn.empty()) { + TELEPHONY_LOGE("rplmn is empty"); + return true; + } + curPlmn_[slotId] = rplmn; + } + std::vector eccVec; + if (currentPlmnEccList_[slotId].plmn == curPlmn_[slotId]) { + SetEmergencyCallList(slotId, currentPlmnEccList_[slotId].eccInfoList); + return true; + } + DelayedSingleton::GetInstance()->QueryEccList(curPlmn_[slotId], eccVec); + GetEccListFromResult(eccVec, callListWithCard, callListNoCard); + return false; +} + void CellularCallConfig::HandleSimAccountLoaded(int32_t slotId) { TELEPHONY_LOGI("entry, slotId: %{public}d", slotId); @@ -1151,5 +1192,21 @@ bool CellularCallConfig::IsVolteSupport(int32_t slotId) "isVolteProvisioned[%{public}d]", slotId, volteSupported_[slotId], isGbaValid, imsSwitch, isVolteProvisioned); return volteSupported_[slotId] && isGbaValid && imsSwitch && isVolteProvisioned; } + +void CellularCallConfig::HandleEccListChange() +{ + std::unique_lock lock(plmnMutex_); + hplmnEccList_[0].plmn = ""; + hplmnEccList_[0].eccInfoList.clear(); + hplmnEccList_[1].plmn = ""; + hplmnEccList_[1].eccInfoList.clear(); + currentPlmnEccList_[0].plmn = ""; + currentPlmnEccList_[0].eccInfoList.clear(); + currentPlmnEccList_[1].plmn = ""; + currentPlmnEccList_[1].eccInfoList.clear(); + lock.unlock(); + UpdateEccNumberList(0); + UpdateEccNumberList(1); +} } // namespace Telephony } // namespace OHOS diff --git a/test/fuzztest/getcallrestriction_fuzzer/BUILD.gn b/test/fuzztest/getcallrestriction_fuzzer/BUILD.gn index 334e7c4d93e83f4edc843c3ee43de3a5e39f20c8..bff420b0931e644fdd8989c84d1b3d910f40df90 100644 --- a/test/fuzztest/getcallrestriction_fuzzer/BUILD.gn +++ b/test/fuzztest/getcallrestriction_fuzzer/BUILD.gn @@ -51,6 +51,8 @@ ohos_fuzztest("GetCallRestrictionFuzzTest") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "eventhandler:libeventhandler", "ffrt:libffrt", "graphic_surface:surface", diff --git a/test/fuzztest/getcscalldata_fuzzer/BUILD.gn b/test/fuzztest/getcscalldata_fuzzer/BUILD.gn index 0cb0630c203a08f6b2c36e9c013c970620b96f95..ffa0e26f9ad13b97d1523b9d108b5cf47383c6cb 100644 --- a/test/fuzztest/getcscalldata_fuzzer/BUILD.gn +++ b/test/fuzztest/getcscalldata_fuzzer/BUILD.gn @@ -50,6 +50,8 @@ ohos_fuzztest("GetCsCallDataFuzzTest") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "eventhandler:libeventhandler", "ffrt:libffrt", "graphic_surface:surface", diff --git a/test/fuzztest/imscallback_fuzzer/BUILD.gn b/test/fuzztest/imscallback_fuzzer/BUILD.gn index 0fc871b1467a07b5acd4fc97c58509d6fe73a56f..5dbb9ae61d3cbfbc55277b8cc4905afd57287e25 100644 --- a/test/fuzztest/imscallback_fuzzer/BUILD.gn +++ b/test/fuzztest/imscallback_fuzzer/BUILD.gn @@ -49,6 +49,8 @@ ohos_fuzztest("ImsCallbackFuzzTest") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "ffrt:libffrt", "graphic_surface:surface", "hilog:libhilog", diff --git a/test/fuzztest/imsclient_fuzzer/BUILD.gn b/test/fuzztest/imsclient_fuzzer/BUILD.gn index afe8ead4182948613ef64eea1291aacac991b775..2a2299479741979cc293f4036d61b334b485fa22 100644 --- a/test/fuzztest/imsclient_fuzzer/BUILD.gn +++ b/test/fuzztest/imsclient_fuzzer/BUILD.gn @@ -49,6 +49,8 @@ ohos_fuzztest("ImsClientFuzzTest") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "ffrt:libffrt", "graphic_surface:surface", "hilog:libhilog", diff --git a/test/fuzztest/registercallmanagercallback_fuzzer/BUILD.gn b/test/fuzztest/registercallmanagercallback_fuzzer/BUILD.gn index 13c6da84320566a9748bb9f035c6a4cab0561a79..7ca8ae14234c7b33d50e2d33b191d3e2b80eba3a 100644 --- a/test/fuzztest/registercallmanagercallback_fuzzer/BUILD.gn +++ b/test/fuzztest/registercallmanagercallback_fuzzer/BUILD.gn @@ -50,6 +50,8 @@ ohos_fuzztest("RegisterCallManagerCallBackFuzzTest") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "eventhandler:libeventhandler", "ffrt:libffrt", "graphic_surface:surface", diff --git a/test/fuzztest/satellitecallback_fuzzer/BUILD.gn b/test/fuzztest/satellitecallback_fuzzer/BUILD.gn index 5178fb74cd16baaabc22be9762848d60c6bf9fbd..64384a8db0f760d513663e1c7ef3a5e177787070 100644 --- a/test/fuzztest/satellitecallback_fuzzer/BUILD.gn +++ b/test/fuzztest/satellitecallback_fuzzer/BUILD.gn @@ -52,6 +52,8 @@ ohos_fuzztest("SatelliteCallbackFuzzTest") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "eventhandler:libeventhandler", "ffrt:libffrt", "graphic_surface:surface", diff --git a/test/fuzztest/satelliteclient_fuzzer/BUILD.gn b/test/fuzztest/satelliteclient_fuzzer/BUILD.gn index 656c78dc968c2408807ef7804e5cf6cc12ffefba..8d97dabdfdebcf9ef8ca69776b7d6ab44709b7e4 100644 --- a/test/fuzztest/satelliteclient_fuzzer/BUILD.gn +++ b/test/fuzztest/satelliteclient_fuzzer/BUILD.gn @@ -52,6 +52,8 @@ ohos_fuzztest("SatelliteClientFuzzTest") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "eventhandler:libeventhandler", "ffrt:libffrt", "graphic_surface:surface", diff --git a/test/fuzztest/setimsfeaturevalue_fuzzer/BUILD.gn b/test/fuzztest/setimsfeaturevalue_fuzzer/BUILD.gn index 846a44d4a7a27fef06f6425e69a41b569d048c47..c64cd22966f716a8b035371f634ea09e7ec9ed70 100644 --- a/test/fuzztest/setimsfeaturevalue_fuzzer/BUILD.gn +++ b/test/fuzztest/setimsfeaturevalue_fuzzer/BUILD.gn @@ -50,6 +50,8 @@ ohos_fuzztest("SetImsFeatureValueFuzzTest") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "eventhandler:libeventhandler", "ffrt:libffrt", "graphic_surface:surface", diff --git a/test/fuzztest/setpreviewwindow_fuzzer/BUILD.gn b/test/fuzztest/setpreviewwindow_fuzzer/BUILD.gn index 415d87cc8de7b945c933d702c6eb5e4854434cc3..fe4740aa57a9b5325280833b8f0693236c16bfb9 100644 --- a/test/fuzztest/setpreviewwindow_fuzzer/BUILD.gn +++ b/test/fuzztest/setpreviewwindow_fuzzer/BUILD.gn @@ -50,6 +50,8 @@ ohos_fuzztest("SetPreviewWindowFuzzTest") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "eventhandler:libeventhandler", "ffrt:libffrt", "graphic_surface:surface", diff --git a/test/unittest/cstest/BUILD.gn b/test/unittest/cstest/BUILD.gn index 7c03877e4d826b408f8d53c0b10af71e80da4d6a..3f915978a9f4358c4ea575cf384d616675beb0c5 100755 --- a/test/unittest/cstest/BUILD.gn +++ b/test/unittest/cstest/BUILD.gn @@ -47,6 +47,8 @@ ohos_unittest("cellular_call_cs_calloperation_test") { "core_service:tel_core_service_api", "eventhandler:libeventhandler", "core_service:ffrt_mocked", + "data_share:datashare_common", + "data_share:datashare_consumer", "graphic_surface:surface", "hilog:libhilog", "init:libbegetutil", @@ -91,6 +93,8 @@ ohos_unittest("cellular_call_cs1_test") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "eventhandler:libeventhandler", "core_service:ffrt_mocked", "graphic_surface:surface", @@ -137,6 +141,8 @@ ohos_unittest("cellular_call_cs2_test") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "eventhandler:libeventhandler", "core_service:ffrt_mocked", "graphic_surface:surface", diff --git a/test/unittest/imstest/zero_branch1_test.cpp b/test/unittest/imstest/zero_branch1_test.cpp index fb7f74fb22e9015611db38ac4222daf3c9076058..c189dc94362ea742dc62e77e81ed7a3660d96ffc 100644 --- a/test/unittest/imstest/zero_branch1_test.cpp +++ b/test/unittest/imstest/zero_branch1_test.cpp @@ -1149,7 +1149,22 @@ HWTEST_F(ZeroBranch1Test, Telephony_CellularCallRdbHelper_001, Function | Medium CoreManagerInner::GetInstance().GetSimOperatorNumeric(SIM1_SLOTID, u16Hplmn); std::string hplmn = Str16ToStr8(u16Hplmn); std::vector eccVec; - ASSERT_NE(DelayedSingleton::GetInstance()->QueryEccList(hplmn, eccVec), TELEPHONY_SUCCESS); + auto rdbHelper = DelayedSingleton::GetInstance(); + EXPECT_NE(rdbHelper->QueryEccList(hplmn, eccVec), TELEPHONY_SUCCESS); + sptr callback = sptr::MakeSptr(); + rdbHelper->RegisterListenState(callback); + callback = nullptr; + rdbHelper->RegisterListenState(callback); + CellularCallConfig config; + std::vector callListWithCard; + std::vector callListNoCard; + config.hplmnEccList_[0].plmn = ""; + bool isHplmnEccList = false; + config.ProcessHplmnEccList(0, "", isHplmnEccList, callListWithCard, callListNoCard); + config.hplmnEccList_[0].plmn = "test"; + config.ProcessHplmnEccList(0, "", isHplmnEccList, callListWithCard, callListNoCard); + callListNoCard.push_back("element1"); + config.ProcessHplmnEccList(0, "", isHplmnEccList, callListWithCard, callListNoCard); } /** diff --git a/test/unittest/satellitetest/BUILD.gn b/test/unittest/satellitetest/BUILD.gn index b10fed30466503f745bd621ba05825def159e4d4..f41d2143309c56b4d93d1e0790abed3d18ddead8 100644 --- a/test/unittest/satellitetest/BUILD.gn +++ b/test/unittest/satellitetest/BUILD.gn @@ -46,6 +46,8 @@ ohos_unittest("cellular_call_satellite_callback_test") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "eventhandler:libeventhandler", "core_service:ffrt_mocked", "graphic_surface:surface", @@ -94,6 +96,8 @@ ohos_unittest("cellular_call_satellite_test") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "eventhandler:libeventhandler", "core_service:ffrt_mocked", "graphic_surface:surface", @@ -142,6 +146,8 @@ ohos_unittest("cellular_call_satellite_zero_branch_test") { "common_event_service:cesfwk_innerkits", "core_service:libtel_common", "core_service:tel_core_service_api", + "data_share:datashare_common", + "data_share:datashare_consumer", "eventhandler:libeventhandler", "core_service:ffrt_mocked", "graphic_surface:surface",