diff --git a/services/distributedhardwarefwkservice/include/task/online_task.h b/services/distributedhardwarefwkservice/include/task/online_task.h index efb64395f87ba37567da0b54f0d82c9c8c85edc9..43c69f6c6b166266348933bec8f481e3d24d98ef 100644 --- a/services/distributedhardwarefwkservice/include/task/online_task.h +++ b/services/distributedhardwarefwkservice/include/task/online_task.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Huawei Device Co., Ltd. + * Copyright (c) 2021-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -32,6 +32,7 @@ private: void DoSyncInfo(); void CreateEnableTask(); void CreateMetaEnableTask(); + void AutoLoadModemSink(); }; } // namespace DistributedHardware } // namespace OHOS diff --git a/services/distributedhardwarefwkservice/src/task/online_task.cpp b/services/distributedhardwarefwkservice/src/task/online_task.cpp index e044b8170981d08396db55cfe3386703876e594b..f93cffaf10cdec3b18b3b18eb3d505c84b7100fc 100644 --- a/services/distributedhardwarefwkservice/src/task/online_task.cpp +++ b/services/distributedhardwarefwkservice/src/task/online_task.cpp @@ -17,6 +17,8 @@ #include "anonymous_string.h" #include "capability_info_manager.h" +#include "component_loader.h" +#include "component_manager.h" #include "device_manager.h" #include "dh_utils_tool.h" #include "distributed_hardware_errno.h" @@ -147,6 +149,24 @@ void OnLineTask::CreateEnableTask() auto task = TaskFactory::GetInstance().CreateTask(TaskType::ENABLE, taskParam, shared_from_this()); TaskExecutor::GetInstance().PushTask(task); } + AutoLoadModemSink(); +} + +void OnLineTask::AutoLoadModemSink() +{ + IDistributedHardwareSink *sinkPtr = nullptr; + DHType dhType = DHType::MODEM; + DHDescriptor dhDescriptor { + .id = "1234", + .dhType = dhType + }; + auto ret = ComponentLoader::GetInstance().GetSink(dhType, sinkPtr); + if (ret == DH_FWK_SUCCESS && sinkPtr != nullptr) { + DHLOGI("Need active enable modem sink."); + ComponentManager::GetInstance().EnableSink(dhDescriptor, 0, 0); + return; + } + DHLOGI("No need enable modem sink."); } void OnLineTask::CreateMetaEnableTask()