diff --git a/services/services/screen_capture/server/screen_capture_server.cpp b/services/services/screen_capture/server/screen_capture_server.cpp index 34999962e9d4d574360db2b9eed46a12b1ee8f4c..281b1bbd819f609611fe11acb1c665c593c42f10 100644 --- a/services/services/screen_capture/server/screen_capture_server.cpp +++ b/services/services/screen_capture/server/screen_capture_server.cpp @@ -2301,7 +2301,7 @@ int32_t ScreenCaptureServer::StartScreenCaptureInner(bool isPrivacyAuthorityEnab ", isSurfaceMode:%{public}d, dataType:%{public}d", appInfo_.appUid, appInfo_.appPid, isPrivacyAuthorityEnabled, isSurfaceMode_, captureConfig_.dataType); MediaTrace trace("ScreenCaptureServer::StartScreenCaptureInner"); - PublishStartRecordEvent(); + PublishScreenCaptureEvent("start"); int32_t ret = RegisterServerCallbacks(); CHECK_AND_RETURN_RET_LOG(ret == MSERR_OK, ret, "RegisterServerCallbacks failed"); @@ -2356,13 +2356,25 @@ int32_t ScreenCaptureServer::StartScreenCaptureInner(bool isPrivacyAuthorityEnab return ret; } -void ScreenCaptureServer::PublishStartRecordEvent() +void ScreenCaptureServer::PublishScreenCaptureEvent(const std::string& state) { AAFwk::Want want; - want.SetAction("custom.usual.event.START_RECORD"); + want.SetAction("usual.event.SCREEN_CAPTURE"); + want.SetParam("screenCaptureState", state); + want.SetParam("screenCaptureUid", appInfo_.appUid); + want.SetParam("screenCaptureSessionId", sessionId_); + if (captureConfig_.dataType == DataType::ORIGINAL_STREAM){ + want.SetParam("screenCaptureType", std::string("originalStream")); + }else if (captureConfig_.dataType == DataType::CAPTURE_FILE){ + want.SetParam("screenCaptureType", std::string("captureFile")); + } + EventFwk::CommonEventPublishInfo CommonEventPublishInfo; + std::vector subscriberPermissions = {"ohos.permission.CAPTURE_SCREEN"}; + CommonEventPublishInfo.SetSubscriberPermissions(subscriberPermissions); EventFwk::CommonEventData commonData {want}; - EventFwk::CommonEventManager::PublishCommonEvent(commonData); - MEDIA_LOGI("custom.usual.event.START_RECORD publish"); + EventFwk::CommonEventManager::PublishCommonEvent(commonData, CommonEventPublishInfo); + MEDIA_LOGI("ohos.permission.CAPTURE_SCREEN publish, uid: %{public}d, type: %{public}d, sessionId: %{public}d", appInfo_.appUid, captureConfig_.dataType, sessionId_); + } bool ScreenCaptureServer::IsTelInCallSkipList() @@ -4070,6 +4082,7 @@ int32_t ScreenCaptureServer::StopScreenCaptureInner(AVScreenCaptureStateCode sta UnRegisterWindowLifecycleListener(); UnRegisterWindowInfoChangedListener(); UnRegisterLanguageSwitchListener(); + PublishScreenCaptureEvent("stop"); MEDIA_LOGI("ScreenCaptureServer: 0x%{public}06" PRIXPTR " StopScreenCaptureInner end.", FAKE_POINTER(this)); return ret; } diff --git a/services/services/screen_capture/server/screen_capture_server.h b/services/services/screen_capture/server/screen_capture_server.h index 9e8f52e731c4b87b8938b19735357891ae506cd1..d952083e7a4a67877ccd5492965dc07d321716ca 100644 --- a/services/services/screen_capture/server/screen_capture_server.h +++ b/services/services/screen_capture/server/screen_capture_server.h @@ -279,7 +279,7 @@ private: void OnReceiveEvent(const EventFwk::CommonEventData &data); void UnRegisterLanguageSwitchListener(); int32_t HandleOriginalStreamPrivacy(); - void PublishStartRecordEvent(); + void PublishScreenCaptureEvent(const std::string& state); private: std::mutex mutex_; std::mutex cbMutex_;