From 5014163b0e26afe7116e0217724c7017f5ca8812 Mon Sep 17 00:00:00 2001 From: l00635678 Date: Sun, 30 Mar 2025 16:08:27 +0800 Subject: [PATCH] =?UTF-8?q?USB=E6=8B=94=E5=87=BA=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E7=83=AD=E7=82=B9=E5=9B=BE=E6=A0=87=E4=B8=8D=E6=B6=88=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: l00635678 --- .../src/networkshare_service.cpp | 15 +++++++++++++++ .../src/networkshare_tracker.cpp | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/services/networksharemanager/src/networkshare_service.cpp b/services/networksharemanager/src/networkshare_service.cpp index 93b0c3b2..f7299dac 100644 --- a/services/networksharemanager/src/networkshare_service.cpp +++ b/services/networksharemanager/src/networkshare_service.cpp @@ -27,6 +27,9 @@ #include "netsys_controller.h" #include "edm_parameter_utils.h" #include "ffrt.h" +#ifdef USB_MODOULE +#include "usb_srv_support.h" +#endif namespace OHOS { namespace NetManagerStandard { @@ -428,6 +431,9 @@ void NetworkShareService::SubscribeCommonEvent() EventFwk::MatchingSkills matchingSkills; matchingSkills.AddEvent(OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_POWER_CONNECTED); matchingSkills.AddEvent(OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_POWER_DISCONNECTED); +#ifdef USB_MODOULE + matchingSkills.AddEvent(OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_USB_STATE); +#endif EventFwk::CommonEventSubscribeInfo subscribeInfo(matchingSkills); // 1 means CORE_EVENT_PRIORITY @@ -451,6 +457,15 @@ void NetworkShareService::CommonEventSubscriber::OnReceiveEvent(const EventFwk:: NetworkShareTracker::GetInstance().OnPowerConnected(); } else if (action == OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_POWER_DISCONNECTED) { NetworkShareTracker::GetInstance().OnPowerDisConnected(); +#ifdef USB_MODOULE + } else if (action == OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_USB_STATE) { + auto want = eventData.GetWant(); + auto connected = want.GetBoolParam(std::string {USB::UsbSrvSupport::CONNECTED}, false); + NETMGR_EXT_LOG_I("UsbSrvSupport::CONNECTED: %{public}d.", connected); + if (!connected) { + NetworkShareTracker::GetInstance().StopNetworkSharing(SharingIfaceType::SHARING_USB); + } +#endif } } diff --git a/services/networksharemanager/src/networkshare_tracker.cpp b/services/networksharemanager/src/networkshare_tracker.cpp index 2951141c..4c953f3a 100644 --- a/services/networksharemanager/src/networkshare_tracker.cpp +++ b/services/networksharemanager/src/networkshare_tracker.cpp @@ -786,7 +786,7 @@ int32_t NetworkShareTracker::SetUsbNetworkSharing(bool enable) } NetworkShareHisysEvent::GetInstance().SendBehaviorEvent(usbShareCount_, SharingIfaceType::SHARING_USB); } else { - if (curUsbState_ == UsbShareState::USB_NONE) { + if (curUsbState_ != UsbShareState::USB_SHARING) { return NETMANAGER_EXT_SUCCESS; } curUsbState_ = UsbShareState::USB_CLOSING; -- Gitee