From 920939ade941dde97e9cf7f08ebf43c2897bcb46 Mon Sep 17 00:00:00 2001 From: zhoujun62 Date: Wed, 29 Dec 2021 21:08:12 +0800 Subject: [PATCH] auto start settingsdata Signed-off-by: zhoujun62 --- services/abilitymgr/include/ability_config.h | 3 +++ .../include/ability_manager_service.h | 6 ++++- .../include/ams_configuration_parameter.h | 7 ++++++ .../resource/ams_service_config.json | 21 ++++++++-------- .../src/ability_manager_service.cpp | 24 +++++++++++++++++-- .../src/ams_configuration_parameter.cpp | 6 +++++ 6 files changed, 54 insertions(+), 13 deletions(-) diff --git a/services/abilitymgr/include/ability_config.h b/services/abilitymgr/include/ability_config.h index 63957d795b..d4f38c98aa 100644 --- a/services/abilitymgr/include/ability_config.h +++ b/services/abilitymgr/include/ability_config.h @@ -47,6 +47,9 @@ const std::string FLOATING_WINDOW_PERMISSION = "ohos.permission.SYSTEM_FLOAT_WIN const std::string LAUNCHER_ABILITY_NAME = "com.ohos.launcher.MainAbility"; const std::string LAUNCHER_BUNDLE_NAME = "com.ohos.launcher"; +const std::string SETTINGS_DATA_ABILITY_NAME = "com.ohos.settingsdata.DataAbility"; +const std::string SETTINGS_DATA_BUNDLE_NAME = "com.ohos.settingsdata"; + const std::string APPLICATION_SELECTOR_BUNDLE_NAME = "com.ohos.selector"; const std::string APPLICATION_SELECTOR_ABILITY_NAME = "com.ohos.selector.MainAbility"; const std::string APPLICATION_SELECTOR_CALLER_ABILITY_RECORD_ID = "OHOS_CALLER_ABILITY_RECORD_ID"; diff --git a/services/abilitymgr/include/ability_manager_service.h b/services/abilitymgr/include/ability_manager_service.h index fce39534cf..989a504b45 100644 --- a/services/abilitymgr/include/ability_manager_service.h +++ b/services/abilitymgr/include/ability_manager_service.h @@ -630,7 +630,11 @@ private: * */ void StartingLauncherAbility(); - + /** + * starting settings data ability. + * + */ + void StartingSettingsDataAbility(); /** * starting phone service ability. * diff --git a/services/abilitymgr/include/ams_configuration_parameter.h b/services/abilitymgr/include/ams_configuration_parameter.h index 81de8b76be..b159298548 100644 --- a/services/abilitymgr/include/ams_configuration_parameter.h +++ b/services/abilitymgr/include/ams_configuration_parameter.h @@ -28,6 +28,7 @@ const std::string HOME_APP("home_application"); const std::string AMS_CONFIG_FILE_PATH {"/system/etc/ams_service_config.json"}; const std::string SERVICE_ITEM_AMS {"service_startup_config"}; const std::string STARTUP_LAUNCHER {"startup_launcher"}; +const std::string STARTUP_SETTINGS_DATA {"startup_settings_data"}; const std::string STARTUP_STATUS_BAR {"startup_system_ui_status_bar"}; const std::string STARTUP_NAVIGATION_BAR {"startup_system_ui_navigation_bar"}; const std::string STARTUP_PHONE_SERVICE {"startup_phone_service"}; @@ -54,6 +55,11 @@ public: * return false : ams do not start launcher */ bool GetStartLauncherState() const; + /** + * return true : ams can start settings data + * return false : ams do not start settings data + */ + bool GetStartSettingsDataState() const; /** * return true : ams can start system ui status bar * return false : ams do not start system ui status bar @@ -111,6 +117,7 @@ private: private: bool nonConfigFile_ {false}; bool canStartLauncher_ {false}; + bool canStartSettingsData_ {false}; bool canStartUiStatusBar_ {false}; bool canStartUiNavigationBar_ {false}; bool canStartPhoneService_ {false}; diff --git a/services/abilitymgr/resource/ams_service_config.json b/services/abilitymgr/resource/ams_service_config.json index 10e464c9b8..c4f3ede647 100644 --- a/services/abilitymgr/resource/ams_service_config.json +++ b/services/abilitymgr/resource/ams_service_config.json @@ -1,17 +1,18 @@ { - "service_startup_config":{ - "startup_launcher":true, - "startup_system_ui_status_bar" : true, - "startup_system_ui_navigation_bar" : true, - "startup_phone_service" : true, - "startup_contacts":true, - "startup_mms":true, - "mission_save_time" : 43200000 + "service_startup_config": { + "startup_launcher": true, + "startup_settings_data": true, + "startup_system_ui_status_bar": true, + "startup_system_ui_navigation_bar": true, + "startup_phone_service": true, + "startup_contacts": true, + "startup_mms": true, + "mission_save_time": 43200000 }, - "memorythreshold":{ + "memorythreshold": { "home_application": "20" }, - "system_configuration":{ + "system_configuration": { "system_orientation": "vertical" } } diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 31298201f4..dfeb632fc6 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -1261,8 +1261,6 @@ void AbilityManagerService::StartingLauncherAbility() usleep(REPOLL_TIME_MICRO_SECONDS); } - HILOG_INFO("waiting boot animation for 5 seconds."); - usleep(REPOLL_TIME_MICRO_SECONDS * WAITING_BOOT_ANIMATION_TIMER); HILOG_INFO("Start Home Launcher Ability."); /* start launch ability */ (void)StartAbility(want, DEFAULT_INVAL_VALUE); @@ -1794,6 +1792,7 @@ void AbilityManagerService::StartSystemApplication() if (!amsConfigResolver_ || amsConfigResolver_->NonConfigFile()) { HILOG_INFO("start all"); StartingLauncherAbility(); + StartingSettingsDataAbility(); StartingSystemUiAbility(SatrtUiMode::STARTUIBOTH); return; } @@ -1803,6 +1802,11 @@ void AbilityManagerService::StartSystemApplication() StartingLauncherAbility(); } + if (amsConfigResolver_->GetStartSettingsDataState()) { + HILOG_INFO("start settings data"); + StartingSettingsDataAbility(); + } + if (amsConfigResolver_->GetStatusBarState()) { HILOG_INFO("start status bar"); StartingSystemUiAbility(SatrtUiMode::STATUSBAR); @@ -2282,5 +2286,21 @@ int AbilityManagerService::GetMissionSaveTime() const return amsConfigResolver_->GetMissionSaveTime(); } + +void AbilityManagerService::StartingSettingsDataAbility() +{ + HILOG_DEBUG("%{public}s", __func__); + if (!iBundleManager_) { + HILOG_INFO("bms service is null"); + return; + } + + /* query if setiings data ability has installed */ + AppExecFwk::AbilityInfo abilityInfo; + /* First stage, hardcoding for the first launcher App */ + Want want; + want.SetElementName(AbilityConfig::SETTINGS_DATA_BUNDLE_NAME, AbilityConfig::SETTINGS_DATA_ABILITY_NAME); + (void)StartAbility(want, DEFAULT_INVAL_VALUE); +} } // namespace AAFwk } // namespace OHOS \ No newline at end of file diff --git a/services/abilitymgr/src/ams_configuration_parameter.cpp b/services/abilitymgr/src/ams_configuration_parameter.cpp index aa35885566..9d18f4f868 100644 --- a/services/abilitymgr/src/ams_configuration_parameter.cpp +++ b/services/abilitymgr/src/ams_configuration_parameter.cpp @@ -32,6 +32,11 @@ bool AmsConfigurationParameter::GetStartLauncherState() const return canStartLauncher_; } +bool AmsConfigurationParameter::GetStartSettingsDataState() const +{ + return canStartSettingsData_; +} + bool AmsConfigurationParameter::GetStatusBarState() const { return canStartUiStatusBar_; @@ -123,6 +128,7 @@ int AmsConfigurationParameter::LoadAppConfigurationForStartUpService(nlohmann::j int ret = -1; if (Object.contains(AmsConfig::SERVICE_ITEM_AMS)) { canStartLauncher_ = Object.at(AmsConfig::SERVICE_ITEM_AMS).at(AmsConfig::STARTUP_LAUNCHER).get(); + canStartLauncher_ = Object.at(AmsConfig::SERVICE_ITEM_AMS).at(AmsConfig::STARTUP_SETTINGS_DATA).get(); canStartUiStatusBar_ = Object.at(AmsConfig::SERVICE_ITEM_AMS).at(AmsConfig::STARTUP_STATUS_BAR).get(); canStartUiNavigationBar_ = Object.at(AmsConfig::SERVICE_ITEM_AMS).at(AmsConfig::STARTUP_NAVIGATION_BAR).get();