From 690d9253ba0f5a7f3b0ca8d71c990f5997c24116 Mon Sep 17 00:00:00 2001 From: li-tiangang4 Date: Tue, 25 Mar 2025 14:29:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=BB=84=E7=BD=91=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=8B=89=E8=B5=B7=E5=88=86=E5=B8=83=E5=BC=8Fmodemsink?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: li-tiangang4 --- .../include/task/online_task.h | 3 ++- .../src/task/online_task.cpp | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/services/distributedhardwarefwkservice/include/task/online_task.h b/services/distributedhardwarefwkservice/include/task/online_task.h index efb64395..43c69f6c 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 e044b817..f93cffaf 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() -- Gitee