From e6d4734ab7c6c46182b5d4230403c030497f8364 Mon Sep 17 00:00:00 2001 From: supeng Date: Tue, 25 Jan 2022 15:25:23 +0800 Subject: [PATCH 1/2] add start systemui service ext ability Signed-off-by: supeng --- services/abilitymgr/include/ability_config.h | 1 + .../include/ability_manager_service.h | 6 ++++ .../src/ability_manager_service.cpp | 29 ++++++++++++------- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/services/abilitymgr/include/ability_config.h b/services/abilitymgr/include/ability_config.h index 0bf081fb35a..8cbb024fa1c 100644 --- a/services/abilitymgr/include/ability_config.h +++ b/services/abilitymgr/include/ability_config.h @@ -28,6 +28,7 @@ const std::string SYSTEM_UI_BUNDLE_NAME = "com.ohos.systemui"; const std::string SYSTEM_UI_STATUS_BAR = "com.ohos.systemui.statusbar.MainAbility"; const std::string SYSTEM_UI_NAVIGATION_BAR = "com.ohos.systemui.navigationbar.MainAbility"; const std::string SYSTEM_DIALOG_NAME = "com.ohos.systemui.systemdialog.MainAbility"; +const std::string SYSTEM_UI_ABILITY_NAME = "com.ohos.systemui.ServiceExtAbility"; const std::string SYSTEM_DIALOG_REQUEST_PERMISSIONS = "OHOS_RESULT_PERMISSIONS_LIST_YES"; const std::string SYSTEM_DIALOG_CALLER_BUNDLENAME = "OHOS_RESULT_CALLER_BUNDLERNAME"; diff --git a/services/abilitymgr/include/ability_manager_service.h b/services/abilitymgr/include/ability_manager_service.h index f6ddc3d4b33..3d2baffb206 100644 --- a/services/abilitymgr/include/ability_manager_service.h +++ b/services/abilitymgr/include/ability_manager_service.h @@ -821,6 +821,12 @@ private: */ void StartingSystemUiAbility(const SatrtUiMode &mode); + /** + * starting system ui ServiceExt abilites. + * + */ + void StartingSystemUiAbility(); + /** * starting contacts ability. * diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 6522cf2e6a0..0b389058623 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -2466,7 +2466,7 @@ void AbilityManagerService::StartSystemApplication() HILOG_INFO("start all"); StartingLauncherAbility(); StartingSettingsDataAbility(); - StartingSystemUiAbility(SatrtUiMode::STARTUIBOTH); + StartingSystemUiAbility(); return; } @@ -2480,15 +2480,7 @@ void AbilityManagerService::StartSystemApplication() StartingSettingsDataAbility(); } - if (amsConfigResolver_->GetStatusBarState()) { - HILOG_INFO("start status bar"); - StartingSystemUiAbility(SatrtUiMode::STATUSBAR); - } - - if (amsConfigResolver_->GetNavigationBarState()) { - HILOG_INFO("start navigation bar"); - StartingSystemUiAbility(SatrtUiMode::NAVIGATIONBAR); - } + StartingSystemUiAbility(); if (amsConfigResolver_->GetPhoneServiceState()) { HILOG_INFO("start phone service"); @@ -2576,6 +2568,23 @@ void AbilityManagerService::StartingSystemUiAbility(const SatrtUiMode &mode) } } +void AbilityManagerService::StartingSystemUiAbility() +{ + HILOG_DEBUG("%{public}s", __func__); + AppExecFwk::AbilityInfo systemUiInfo; + Want systemUiWant; + systemUiWant.SetElementName(AbilityConfig::SYSTEM_UI_BUNDLE_NAME, SYSTEM_UI_ABILITY_NAME); + uint32_t waitCnt = 0; + // Wait 10 minutes for the installation to complete. + while (!iBundleManager_->QueryAbilityInfo(systemUiWant, systemUiInfo) && waitCnt < MAX_WAIT_SYSTEM_UI_NUM) { + HILOG_INFO("Waiting query system ui info completed."); + usleep(REPOLL_TIME_MICRO_SECONDS); + waitCnt++; + } + (void)StartAbility(systemUiWant, DEFAULT_INVAL_VALUE); +} + + bool AbilityManagerService::CheckCallerIsSystemAppByIpc() { HILOG_DEBUG("%{public}s begin", __func__); -- Gitee From db9d20163560d91a792ab993f1e67713c41271da Mon Sep 17 00:00:00 2001 From: supeng Date: Tue, 25 Jan 2022 15:35:53 +0800 Subject: [PATCH 2/2] add start systemui service ext ability Signed-off-by: supeng --- services/abilitymgr/src/ability_manager_service.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 0b389058623..85437d5900c 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -2572,8 +2572,12 @@ void AbilityManagerService::StartingSystemUiAbility() { HILOG_DEBUG("%{public}s", __func__); AppExecFwk::AbilityInfo systemUiInfo; + if (!iBundleManager_) { + HILOG_INFO("bms server is null"); + return; + } Want systemUiWant; - systemUiWant.SetElementName(AbilityConfig::SYSTEM_UI_BUNDLE_NAME, SYSTEM_UI_ABILITY_NAME); + systemUiWant.SetElementName(AbilityConfig::SYSTEM_UI_BUNDLE_NAME, AbilityConfig::SYSTEM_UI_ABILITY_NAME); uint32_t waitCnt = 0; // Wait 10 minutes for the installation to complete. while (!iBundleManager_->QueryAbilityInfo(systemUiWant, systemUiInfo) && waitCnt < MAX_WAIT_SYSTEM_UI_NUM) { -- Gitee