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