• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023-2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "ability_manager_client.h"
17 
18 #ifdef WITH_DLP
19 #include "dlp_file_kits.h"
20 #endif // WITH_DLP
21 #include "hilog_tag_wrapper.h"
22 #include "hitrace_meter.h"
23 #include "iservice_registry.h"
24 #ifdef SUPPORT_SCREEN
25 #include "scene_board_judgement.h"
26 #include "session_manager_lite.h"
27 #endif // SUPPORT_SCREEN
28 #include "status_bar_delegate_interface.h"
29 #include "system_ability_definition.h"
30 
31 namespace OHOS {
32 namespace AAFwk {
33 namespace {
34 #ifdef SUPPORT_SCREEN
35 static std::unordered_map<Rosen::WSError, int32_t> SCB_TO_MISSION_ERROR_CODE_MAP {
36     { Rosen::WSError::WS_ERROR_INVALID_PERMISSION, CHECK_PERMISSION_FAILED },
37     { Rosen::WSError::WS_ERROR_NOT_SYSTEM_APP, ERR_NOT_SYSTEM_APP },
38     { Rosen::WSError::WS_ERROR_INVALID_PARAM, INVALID_PARAMETERS_ERR },
39 };
40 #endif // SUPPORT_SCREEN
41 }
42 #ifdef SUPPORT_SCREEN
43 using OHOS::Rosen::SessionManagerLite;
44 #endif // SUPPORT_SCREEN
45 std::shared_ptr<AbilityManagerClient> AbilityManagerClient::instance_ = nullptr;
46 std::once_flag AbilityManagerClient::singletonFlag_;
47 #ifdef WITH_DLP
48 const std::string DLP_PARAMS_SANDBOX = "ohos.dlp.params.sandbox";
49 #endif // WITH_DLP
50 
51 #define CHECK_POINTER_RETURN(object)                        \
52     if (!object) {                                          \
53         TAG_LOGE(AAFwkTag::ABILITYMGR, "null proxy"); \
54         return;                                             \
55     }
56 
57 #define CHECK_POINTER_RETURN_NOT_CONNECTED(object)           \
58     if (!object) {                                           \
59         TAG_LOGE(AAFwkTag::ABILITYMGR, "null proxy"); \
60         return ABILITY_SERVICE_NOT_CONNECTED;                \
61     }
62 
63 #define CHECK_POINTER_RETURN_INVALID_VALUE(object)           \
64     if (!object) {                                           \
65         TAG_LOGE(AAFwkTag::ABILITYMGR, "null proxy"); \
66         return ERR_INVALID_VALUE;                            \
67     }
68 
GetInstance()69 std::shared_ptr<AbilityManagerClient> AbilityManagerClient::GetInstance()
70 {
71     std::call_once(singletonFlag_, [] () {
72         instance_ = std::shared_ptr<AbilityManagerClient>(new AbilityManagerClient());
73     });
74     return instance_;
75 }
76 
AbilityManagerClient()77 AbilityManagerClient::AbilityManagerClient()
78 {}
79 
~AbilityManagerClient()80 AbilityManagerClient::~AbilityManagerClient()
81 {
82     TAG_LOGI(AAFwkTag::ABILITYMGR, "Remove DeathRecipient");
83     RemoveDeathRecipient();
84 }
85 
AttachAbilityThread(sptr<IAbilityScheduler> scheduler,sptr<IRemoteObject> token)86 ErrCode AbilityManagerClient::AttachAbilityThread(
87     sptr<IAbilityScheduler> scheduler, sptr<IRemoteObject> token)
88 {
89     auto abms = GetAbilityManager();
90     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
91     return abms->AttachAbilityThread(scheduler, token);
92 }
93 
AbilityTransitionDone(sptr<IRemoteObject> token,int state,const PacMap & saveData)94 ErrCode AbilityManagerClient::AbilityTransitionDone(sptr<IRemoteObject> token, int state, const PacMap &saveData)
95 {
96     auto abms = GetAbilityManager();
97     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
98     return abms->AbilityTransitionDone(token, state, saveData);
99 }
100 
AbilityWindowConfigTransitionDone(sptr<IRemoteObject> token,const WindowConfig & windowConfig)101 ErrCode AbilityManagerClient::AbilityWindowConfigTransitionDone(
102     sptr<IRemoteObject> token, const WindowConfig &windowConfig)
103 {
104     auto abms = GetAbilityManager();
105     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
106     return abms->AbilityWindowConfigTransitionDone(token, windowConfig);
107 }
108 
ScheduleConnectAbilityDone(sptr<IRemoteObject> token,sptr<IRemoteObject> remoteObject)109 ErrCode AbilityManagerClient::ScheduleConnectAbilityDone(
110     sptr<IRemoteObject> token, sptr<IRemoteObject> remoteObject)
111 {
112     auto abms = GetAbilityManager();
113     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
114     return abms->ScheduleConnectAbilityDone(token, remoteObject);
115 }
116 
ScheduleDisconnectAbilityDone(sptr<IRemoteObject> token)117 ErrCode AbilityManagerClient::ScheduleDisconnectAbilityDone(sptr<IRemoteObject> token)
118 {
119     auto abms = GetAbilityManager();
120     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
121     return abms->ScheduleDisconnectAbilityDone(token);
122 }
123 
ScheduleCommandAbilityDone(sptr<IRemoteObject> token)124 ErrCode AbilityManagerClient::ScheduleCommandAbilityDone(sptr<IRemoteObject> token)
125 {
126     auto abms = GetAbilityManager();
127     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
128     return abms->ScheduleCommandAbilityDone(token);
129 }
130 
ScheduleCommandAbilityWindowDone(sptr<IRemoteObject> token,sptr<SessionInfo> sessionInfo,WindowCommand winCmd,AbilityCommand abilityCmd)131 ErrCode AbilityManagerClient::ScheduleCommandAbilityWindowDone(
132     sptr<IRemoteObject> token,
133     sptr<SessionInfo> sessionInfo,
134     WindowCommand winCmd,
135     AbilityCommand abilityCmd)
136 {
137     auto abms = GetAbilityManager();
138     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
139     return abms->ScheduleCommandAbilityWindowDone(token, sessionInfo, winCmd, abilityCmd);
140 }
141 
StartAbility(const Want & want,int requestCode,int32_t userId)142 ErrCode AbilityManagerClient::StartAbility(const Want &want, int requestCode, int32_t userId)
143 {
144     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
145     auto abms = GetAbilityManager();
146     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
147     TAG_LOGI(AAFwkTag::ABILITYMGR, "StartAbility ability:%{public}s, userId:%{public}d, appCloneIndex:%{public}d",
148         want.GetElement().GetURI().c_str(), userId, want.GetIntParam(Want::PARAM_APP_CLONE_INDEX_KEY, -1));
149 
150     HandleDlpApp(const_cast<Want &>(want));
151     return abms->StartAbility(want, userId, requestCode);
152 }
153 
StartAbilityWithWait(Want & want,sptr<IAbilityStartWithWaitObserver> observer)154 ErrCode AbilityManagerClient::StartAbilityWithWait(Want &want, sptr<IAbilityStartWithWaitObserver> observer)
155 {
156     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
157     TAG_LOGD(AAFwkTag::ABILITYMGR, "ability:%{public}s, bundle:%{public}s",
158         want.GetElement().GetAbilityName().c_str(), want.GetElement().GetBundleName().c_str());
159     auto abms = GetAbilityManager();
160     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
161 
162     HandleDlpApp(want);
163     return abms->StartAbilityWithWait(want, observer);
164 }
165 
StartAbility(const Want & want,sptr<IRemoteObject> callerToken,int requestCode,int32_t userId)166 ErrCode AbilityManagerClient::StartAbility(
167     const Want &want, sptr<IRemoteObject> callerToken, int requestCode, int32_t userId)
168 {
169     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
170     auto abms = GetAbilityManager();
171     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
172     TAG_LOGI(AAFwkTag::ABILITYMGR, "StartAbility ability:%{public}s, userId:%{public}d, appCloneIndex:%{public}d",
173         want.GetElement().GetURI().c_str(), userId, want.GetIntParam(Want::PARAM_APP_CLONE_INDEX_KEY, -1));
174     HandleDlpApp(const_cast<Want &>(want));
175     return abms->StartAbility(want, callerToken, userId, requestCode);
176 }
177 
StartAbilityByInsightIntent(const Want & want,sptr<IRemoteObject> callerToken,uint64_t intentId,int32_t userId)178 ErrCode AbilityManagerClient::StartAbilityByInsightIntent(
179     const Want &want, sptr<IRemoteObject> callerToken, uint64_t intentId, int32_t userId)
180 {
181     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
182     auto abms = GetAbilityManager();
183     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
184     TAG_LOGD(AAFwkTag::ABILITYMGR, "ability:%{public}s, bundle:%{public}s, intentId:%{public}" PRIu64,
185         want.GetElement().GetAbilityName().c_str(), want.GetElement().GetBundleName().c_str(), intentId);
186     HandleDlpApp(const_cast<Want &>(want));
187     return abms->StartAbilityByInsightIntent(want, callerToken, intentId, userId);
188 }
189 
StartAbility(const Want & want,const AbilityStartSetting & abilityStartSetting,sptr<IRemoteObject> callerToken,int requestCode,int32_t userId)190 ErrCode AbilityManagerClient::StartAbility(const Want &want, const AbilityStartSetting &abilityStartSetting,
191     sptr<IRemoteObject> callerToken, int requestCode, int32_t userId)
192 {
193     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
194     auto abms = GetAbilityManager();
195     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
196     TAG_LOGI(AAFwkTag::ABILITYMGR, "StartAbility ability:%{public}s, userId:%{public}d, appCloneIndex:%{public}d",
197         want.GetElement().GetURI().c_str(), userId, want.GetIntParam(Want::PARAM_APP_CLONE_INDEX_KEY, -1));
198     HandleDlpApp(const_cast<Want &>(want));
199     return abms->StartAbility(want, abilityStartSetting, callerToken, userId, requestCode);
200 }
201 
StartAbility(const Want & want,const StartOptions & startOptions,sptr<IRemoteObject> callerToken,int requestCode,int32_t userId)202 ErrCode AbilityManagerClient::StartAbility(const Want &want, const StartOptions &startOptions,
203     sptr<IRemoteObject> callerToken, int requestCode, int32_t userId)
204 {
205     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
206     auto abms = GetAbilityManager();
207     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
208     TAG_LOGI(AAFwkTag::ABILITYMGR, "start ability, ability:%{public}s, userId:%{public}d,appCloneIndex:%{public}d",
209         want.GetElement().GetURI().c_str(), userId, want.GetIntParam(Want::PARAM_APP_CLONE_INDEX_KEY, -1));
210     HandleDlpApp(const_cast<Want &>(want));
211     return abms->StartAbility(want, startOptions, callerToken, userId, requestCode);
212 }
213 
StartAbilityAsCaller(const Want & want,sptr<IRemoteObject> callerToken,sptr<IRemoteObject> asCallerSourceToken,int requestCode,int32_t userId)214 ErrCode AbilityManagerClient::StartAbilityAsCaller(
215     const Want &want, sptr<IRemoteObject> callerToken,
216     sptr<IRemoteObject> asCallerSourceToken, int requestCode, int32_t userId)
217 {
218     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
219     auto abms = GetAbilityManager();
220     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
221     TAG_LOGI(AAFwkTag::ABILITYMGR, "StartAbilityAsCaller ability:%{public}s, userId:%{public}d.",
222         want.GetElement().GetURI().c_str(), userId);
223     HandleDlpApp(const_cast<Want &>(want));
224     return abms->StartAbilityAsCaller(want, callerToken, asCallerSourceToken, userId, requestCode);
225 }
226 
StartAbilityAsCaller(const Want & want,const StartOptions & startOptions,sptr<IRemoteObject> callerToken,sptr<IRemoteObject> asCallerSourceToken,int requestCode,int32_t userId)227 ErrCode AbilityManagerClient::StartAbilityAsCaller(const Want &want, const StartOptions &startOptions,
228     sptr<IRemoteObject> callerToken, sptr<IRemoteObject> asCallerSourceToken,
229     int requestCode, int32_t userId)
230 {
231     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
232     auto abms = GetAbilityManager();
233     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
234     TAG_LOGI(AAFwkTag::ABILITYMGR, "abilityName:%{public}s, userId:%{public}d",
235         want.GetElement().GetURI().c_str(), userId);
236     HandleDlpApp(const_cast<Want &>(want));
237     return abms->StartAbilityAsCaller(want, startOptions, callerToken, asCallerSourceToken, userId, requestCode);
238 }
239 
StartAbilityForResultAsCaller(const Want & want,sptr<IRemoteObject> callerToken,int requestCode,int32_t userId)240 ErrCode AbilityManagerClient::StartAbilityForResultAsCaller(
241     const Want &want, sptr<IRemoteObject> callerToken, int requestCode, int32_t userId)
242 {
243     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
244     auto abms = GetAbilityManager();
245     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
246     TAG_LOGI(AAFwkTag::ABILITYMGR, "StartAbilityForResultAsCaller, The abilityName:%{public}s, userId:%{public}d",
247         want.GetElement().GetURI().c_str(), userId);
248     HandleDlpApp(const_cast<Want &>(want));
249     return abms->StartAbilityForResultAsCaller(want, callerToken, requestCode, userId);
250 }
251 
StartAbilityForResultAsCaller(const Want & want,const StartOptions & startOptions,sptr<IRemoteObject> callerToken,int requestCode,int32_t userId)252 ErrCode AbilityManagerClient::StartAbilityForResultAsCaller(const Want &want, const StartOptions &startOptions,
253     sptr<IRemoteObject> callerToken, int requestCode, int32_t userId)
254 {
255     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
256     auto abms = GetAbilityManager();
257     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
258     TAG_LOGI(AAFwkTag::ABILITYMGR, "The abilityName:%{public}s, userId:%{public}d",
259         want.GetElement().GetURI().c_str(), userId);
260     HandleDlpApp(const_cast<Want &>(want));
261     return abms->StartAbilityForResultAsCaller(want, startOptions, callerToken, requestCode, userId);
262 }
263 
StartUIAbilities(const std::vector<AAFwk::Want> & wantList,const std::string & requestKey,sptr<IRemoteObject> callerToken)264 ErrCode AbilityManagerClient::StartUIAbilities(const std::vector<AAFwk::Want> &wantList,
265     const std::string &requestKey, sptr<IRemoteObject> callerToken)
266 {
267     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
268     TAG_LOGI(AAFwkTag::ABILITYMGR, "call StartUIAbilities");
269     auto abms = GetAbilityManager();
270     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
271     for (const Want &item : wantList) {
272         HandleDlpApp(const_cast<Want &>(item));
273     }
274     return abms->StartUIAbilities(wantList, requestKey, callerToken);
275 }
276 
StartAbilityByUIContentSession(const Want & want,const StartOptions & startOptions,sptr<IRemoteObject> callerToken,sptr<AAFwk::SessionInfo> sessionInfo,int requestCode,int32_t userId)277 ErrCode AbilityManagerClient::StartAbilityByUIContentSession(const Want &want, const StartOptions &startOptions,
278     sptr<IRemoteObject> callerToken, sptr<AAFwk::SessionInfo> sessionInfo,
279     int requestCode, int32_t userId)
280 {
281     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
282     auto abms = GetAbilityManager();
283     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
284     TAG_LOGI(AAFwkTag::ABILITYMGR, "abilityName:%{public}s, userId:%{public}d.",
285         want.GetElement().GetAbilityName().c_str(), userId);
286     HandleDlpApp(const_cast<Want &>(want));
287     return abms->StartAbilityByUIContentSession(want, startOptions, callerToken, sessionInfo, userId, requestCode);
288 }
289 
StartAbilityByUIContentSession(const Want & want,sptr<IRemoteObject> callerToken,sptr<AAFwk::SessionInfo> sessionInfo,int requestCode,int32_t userId)290 ErrCode AbilityManagerClient::StartAbilityByUIContentSession(const Want &want, sptr<IRemoteObject> callerToken,
291     sptr<AAFwk::SessionInfo> sessionInfo, int requestCode, int32_t userId)
292 {
293     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
294     auto abms = GetAbilityManager();
295     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
296     TAG_LOGI(AAFwkTag::ABILITYMGR, "ability:%{public}s, userId:%{public}d",
297         want.GetElement().GetAbilityName().c_str(), userId);
298     HandleDlpApp(const_cast<Want &>(want));
299     return abms->StartAbilityByUIContentSession(want, callerToken, sessionInfo, userId, requestCode);
300 }
301 
StartAbilityOnlyUIAbility(const Want & want,sptr<IRemoteObject> callerToken,uint32_t specifyTokenId)302 ErrCode AbilityManagerClient::StartAbilityOnlyUIAbility(const Want &want, sptr<IRemoteObject> callerToken,
303     uint32_t specifyTokenId)
304 {
305     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
306     auto abms = GetAbilityManager();
307     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
308     TAG_LOGI(AAFwkTag::ABILITYMGR, "ability:%{public}s",
309         want.GetElement().GetAbilityName().c_str());
310     HandleDlpApp(const_cast<Want &>(want));
311     return abms->StartAbilityOnlyUIAbility(want, callerToken, specifyTokenId);
312 }
313 
SendResultToAbility(int requestCode,int resultCode,Want & resultWant)314 ErrCode AbilityManagerClient::SendResultToAbility(int requestCode, int resultCode, Want& resultWant)
315 {
316     auto abms = GetAbilityManager();
317     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
318     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
319     return abms->SendResultToAbility(requestCode, resultCode, resultWant);
320 }
321 
StartExtensionAbility(const Want & want,sptr<IRemoteObject> callerToken,int32_t userId,AppExecFwk::ExtensionAbilityType extensionType)322 ErrCode AbilityManagerClient::StartExtensionAbility(const Want &want, sptr<IRemoteObject> callerToken,
323     int32_t userId, AppExecFwk::ExtensionAbilityType extensionType)
324 {
325     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
326     auto abms = GetAbilityManager();
327     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
328     TAG_LOGI(AAFwkTag::SERVICE_EXT, "name:%{public}s %{public}s, userId=%{public}d.",
329         want.GetElement().GetAbilityName().c_str(), want.GetElement().GetBundleName().c_str(), userId);
330     return abms->StartExtensionAbility(want, callerToken, userId, extensionType);
331 }
332 
RequestModalUIExtension(const Want & want)333 ErrCode AbilityManagerClient::RequestModalUIExtension(const Want &want)
334 {
335     auto abms = GetAbilityManager();
336     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
337     return abms->RequestModalUIExtension(want);
338 }
339 
PreloadUIExtensionAbility(const Want & want,std::string & hostBundleName,int32_t userId,int32_t hostPid)340 ErrCode AbilityManagerClient::PreloadUIExtensionAbility(const Want &want, std::string &hostBundleName,
341     int32_t userId, int32_t hostPid)
342 {
343     auto abms = GetAbilityManager();
344     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
345     TAG_LOGD(AAFwkTag::ABILITYMGR, "elementName:%{public}s, hostBundleName:%{public}s.",
346         want.GetElement().GetURI().c_str(), hostBundleName.c_str());
347     return abms->PreloadUIExtensionAbility(want, hostBundleName, userId, hostPid);
348 }
349 
ChangeAbilityVisibility(sptr<IRemoteObject> token,bool isShow)350 ErrCode AbilityManagerClient::ChangeAbilityVisibility(sptr<IRemoteObject> token, bool isShow)
351 {
352     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
353     auto abms = GetAbilityManager();
354     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
355     return abms->ChangeAbilityVisibility(token, isShow);
356 }
357 
ChangeUIAbilityVisibilityBySCB(sptr<SessionInfo> sessionInfo,bool isShow)358 ErrCode AbilityManagerClient::ChangeUIAbilityVisibilityBySCB(sptr<SessionInfo> sessionInfo, bool isShow)
359 {
360     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
361     if (sessionInfo == nullptr) {
362         TAG_LOGE(AAFwkTag::ABILITYMGR, "null sessionInfo");
363         return ERR_INVALID_VALUE;
364     }
365     auto abms = GetAbilityManager();
366     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
367     TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, ChangeUIAbilityVisibilityBySCB abilityName: %{public}s,"
368         "isShow: %{public}d", sessionInfo->want.GetElement().GetAbilityName().c_str(), isShow);
369     return abms->ChangeUIAbilityVisibilityBySCB(sessionInfo, isShow);
370 }
371 
StartUIExtensionAbility(sptr<SessionInfo> extensionSessionInfo,int32_t userId)372 ErrCode AbilityManagerClient::StartUIExtensionAbility(sptr<SessionInfo> extensionSessionInfo, int32_t userId)
373 {
374     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
375     auto abms = GetAbilityManager();
376     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
377     CHECK_POINTER_RETURN_INVALID_VALUE(extensionSessionInfo);
378     TAG_LOGD(AAFwkTag::ABILITYMGR, "name:%{public}s %{public}s, persistentId:%{public}d, userId:%{public}d",
379         extensionSessionInfo->want.GetElement().GetAbilityName().c_str(),
380         extensionSessionInfo->want.GetElement().GetBundleName().c_str(), extensionSessionInfo->persistentId, userId);
381     return abms->StartUIExtensionAbility(extensionSessionInfo, userId);
382 }
383 
StartUIAbilityBySCB(sptr<SessionInfo> sessionInfo,bool & isColdStart,uint32_t sceneFlag)384 ErrCode AbilityManagerClient::StartUIAbilityBySCB(sptr<SessionInfo> sessionInfo, bool &isColdStart, uint32_t sceneFlag)
385 {
386     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
387     if (sessionInfo == nullptr) {
388         TAG_LOGE(AAFwkTag::ABILITYMGR, "null sessionInfo");
389         return ERR_INVALID_VALUE;
390     }
391     auto abms = GetAbilityManager();
392     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
393     TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, StartUIAbilityBySCB target: %{public}s, persistentId: %{public}d.",
394         sessionInfo->want.GetElement().GetURI().c_str(), sessionInfo->persistentId);
395     return abms->StartUIAbilityBySCB(sessionInfo, isColdStart, sceneFlag);
396 }
397 
StopExtensionAbility(const Want & want,sptr<IRemoteObject> callerToken,int32_t userId,AppExecFwk::ExtensionAbilityType extensionType)398 ErrCode AbilityManagerClient::StopExtensionAbility(const Want &want, sptr<IRemoteObject> callerToken,
399     int32_t userId, AppExecFwk::ExtensionAbilityType extensionType)
400 {
401     auto abms = GetAbilityManager();
402     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
403     TAG_LOGI(AAFwkTag::SERVICE_EXT, "name:%{public}s %{public}s, userId=%{public}d.",
404         want.GetElement().GetAbilityName().c_str(), want.GetElement().GetBundleName().c_str(), userId);
405     return abms->StopExtensionAbility(want, callerToken, userId, extensionType);
406 }
407 
TerminateAbility(sptr<IRemoteObject> token,int resultCode,const Want * resultWant)408 ErrCode AbilityManagerClient::TerminateAbility(sptr<IRemoteObject> token, int resultCode, const Want *resultWant)
409 {
410     auto abms = GetAbilityManager();
411     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
412     TAG_LOGD(AAFwkTag::ABILITYMGR, "call");
413     return abms->TerminateAbility(token, resultCode, resultWant);
414 }
415 
BackToCallerAbilityWithResult(const sptr<IRemoteObject> & token,int resultCode,const Want * resultWant,int64_t callerRequestCode)416 ErrCode AbilityManagerClient::BackToCallerAbilityWithResult(const sptr<IRemoteObject> &token, int resultCode,
417     const Want *resultWant, int64_t callerRequestCode)
418 {
419     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
420     auto abms = GetAbilityManager();
421     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
422     return abms->BackToCallerAbilityWithResult(token, resultCode, resultWant, callerRequestCode);
423 }
424 
TerminateUIServiceExtensionAbility(sptr<IRemoteObject> token)425 ErrCode AbilityManagerClient::TerminateUIServiceExtensionAbility(sptr<IRemoteObject> token)
426 {
427     auto abms = GetAbilityManager();
428     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
429     TAG_LOGD(AAFwkTag::ABILITYMGR, "call");
430     return abms->TerminateUIServiceExtensionAbility(token);
431 }
432 
TerminateUIExtensionAbility(sptr<SessionInfo> extensionSessionInfo,int resultCode,const Want * resultWant)433 ErrCode AbilityManagerClient::TerminateUIExtensionAbility(sptr<SessionInfo> extensionSessionInfo,
434     int resultCode, const Want *resultWant)
435 {
436     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
437     auto abms = GetAbilityManager();
438     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
439     CHECK_POINTER_RETURN_INVALID_VALUE(extensionSessionInfo);
440     TAG_LOGI(AAFwkTag::ABILITYMGR, "name: %{public}s %{public}s, persistentId: %{public}d",
441         extensionSessionInfo->want.GetElement().GetAbilityName().c_str(),
442         extensionSessionInfo->want.GetElement().GetBundleName().c_str(), extensionSessionInfo->persistentId);
443     return abms->TerminateUIExtensionAbility(extensionSessionInfo, resultCode, resultWant);
444 }
445 
CloseUIExtensionAbilityBySCB(const sptr<IRemoteObject> token)446 ErrCode AbilityManagerClient::CloseUIExtensionAbilityBySCB(const sptr<IRemoteObject> token)
447 {
448     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
449     if (token == nullptr) {
450         TAG_LOGE(AAFwkTag::ABILITYMGR, "null token");
451         return ERR_INVALID_VALUE;
452     }
453     auto abms = GetAbilityManager();
454     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
455     TAG_LOGI(AAFwkTag::ABILITYMGR, "CloseUIExtensionAbilityBySCB");
456     return abms->CloseUIExtensionAbilityBySCB(token);
457 }
458 
MoveAbilityToBackground(sptr<IRemoteObject> token)459 ErrCode AbilityManagerClient::MoveAbilityToBackground(sptr<IRemoteObject> token)
460 {
461     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
462     auto abms = GetAbilityManager();
463     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
464     return abms->MoveAbilityToBackground(token);
465 }
466 
MoveUIAbilityToBackground(const sptr<IRemoteObject> token)467 ErrCode AbilityManagerClient::MoveUIAbilityToBackground(const sptr<IRemoteObject> token)
468 {
469     TAG_LOGI(AAFwkTag::ABILITYMGR, "MoveUIAbilityToBackground call");
470     auto abms = GetAbilityManager();
471     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
472     return abms->MoveUIAbilityToBackground(token);
473 }
474 
CloseAbility(sptr<IRemoteObject> token,int resultCode,const Want * resultWant)475 ErrCode AbilityManagerClient::CloseAbility(sptr<IRemoteObject> token, int resultCode, const Want *resultWant)
476 {
477 #ifdef SUPPORT_SCREEN
478     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
479         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
480         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
481         sptr<AAFwk::SessionInfo> info = new AAFwk::SessionInfo();
482         info->want = *resultWant;
483         info->resultCode = resultCode;
484         info->sessionToken = token;
485         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, CloseAbility");
486         auto ret = static_cast<int>(sceneSessionManager->TerminateSessionNew(info, false));
487         if (ret != ERR_OK) {
488             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, CloseAbility err: %{public}d", ret);
489         }
490         return ret;
491     }
492 #endif // SUPPORT_SCREEN
493     auto abms = GetAbilityManager();
494     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
495     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
496     return abms->CloseAbility(token, resultCode, resultWant);
497 }
498 
CloseUIAbilityBySCB(sptr<SessionInfo> sessionInfo,bool isUserRequestedExit,uint32_t sceneFlag)499 ErrCode AbilityManagerClient::CloseUIAbilityBySCB(sptr<SessionInfo> sessionInfo,
500     bool isUserRequestedExit, uint32_t sceneFlag)
501 {
502     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
503     if (sessionInfo == nullptr) {
504         TAG_LOGE(AAFwkTag::ABILITYMGR, "null sessionInfo");
505         return ERR_INVALID_VALUE;
506     }
507     auto abms = GetAbilityManager();
508     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
509     TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, CloseUIAbilityBySCB persistentId: %{public}d", sessionInfo->persistentId);
510     return abms->CloseUIAbilityBySCB(sessionInfo, isUserRequestedExit, sceneFlag);
511 }
512 
MinimizeAbility(sptr<IRemoteObject> token,bool fromUser)513 ErrCode AbilityManagerClient::MinimizeAbility(sptr<IRemoteObject> token, bool fromUser)
514 {
515     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
516     auto abms = GetAbilityManager();
517     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
518     TAG_LOGI(AAFwkTag::ABILITYMGR, "fromUser:%{public}d.", fromUser);
519     return abms->MinimizeAbility(token, fromUser);
520 }
521 
MinimizeUIExtensionAbility(sptr<SessionInfo> extensionSessionInfo,bool fromUser)522 ErrCode AbilityManagerClient::MinimizeUIExtensionAbility(sptr<SessionInfo> extensionSessionInfo, bool fromUser)
523 {
524     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
525     auto abms = GetAbilityManager();
526     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
527     CHECK_POINTER_RETURN_INVALID_VALUE(extensionSessionInfo);
528     TAG_LOGI(AAFwkTag::ABILITYMGR, "name: %{public}s %{public}s, persistentId: %{public}d, fromUser: %{public}d",
529         extensionSessionInfo->want.GetElement().GetAbilityName().c_str(),
530         extensionSessionInfo->want.GetElement().GetBundleName().c_str(), extensionSessionInfo->persistentId, fromUser);
531     return abms->MinimizeUIExtensionAbility(extensionSessionInfo, fromUser);
532 }
533 
MinimizeUIAbilityBySCB(sptr<SessionInfo> sessionInfo,bool fromUser,uint32_t sceneFlag)534 ErrCode AbilityManagerClient::MinimizeUIAbilityBySCB(sptr<SessionInfo> sessionInfo, bool fromUser, uint32_t sceneFlag)
535 {
536     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
537     if (sessionInfo == nullptr) {
538         TAG_LOGE(AAFwkTag::ABILITYMGR, "null sessionInfo");
539         return ERR_INVALID_VALUE;
540     }
541     auto abms = GetAbilityManager();
542     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
543     TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, MinimizeUIAbilityBySCB target: %{public}s, persistentId: %{public}d",
544         sessionInfo->want.GetElement().GetURI().c_str(), sessionInfo->persistentId);
545     return abms->MinimizeUIAbilityBySCB(sessionInfo, fromUser, sceneFlag);
546 }
547 
ConnectAbility(const Want & want,sptr<IAbilityConnection> connect,int32_t userId)548 ErrCode AbilityManagerClient::ConnectAbility(const Want &want, sptr<IAbilityConnection> connect, int32_t userId)
549 {
550     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
551     auto abms = GetAbilityManager();
552     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
553     TAG_LOGI(AAFwkTag::SERVICE_EXT, "name:%{public}s %{public}s, userId:%{public}d",
554         want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str(), userId);
555     return abms->ConnectAbilityCommon(want, connect, nullptr, AppExecFwk::ExtensionAbilityType::SERVICE, userId);
556 }
557 
ConnectAbility(const Want & want,sptr<IAbilityConnection> connect,sptr<IRemoteObject> callerToken,int32_t userId)558 ErrCode AbilityManagerClient::ConnectAbility(
559     const Want &want, sptr<IAbilityConnection> connect, sptr<IRemoteObject> callerToken, int32_t userId)
560 {
561     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
562     auto abms = GetAbilityManager();
563     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
564     TAG_LOGI(AAFwkTag::SERVICE_EXT, "name:%{public}s %{public}s, userId:%{public}d",
565         want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str(), userId);
566     return abms->ConnectAbilityCommon(want, connect, callerToken, AppExecFwk::ExtensionAbilityType::SERVICE, userId);
567 }
568 
ConnectAbilityWithExtensionType(const Want & want,sptr<IAbilityConnection> connect,sptr<IRemoteObject> callerToken,int32_t userId,AppExecFwk::ExtensionAbilityType extensionType)569 ErrCode AbilityManagerClient::ConnectAbilityWithExtensionType(
570     const Want &want, sptr<IAbilityConnection> connect, sptr<IRemoteObject> callerToken, int32_t userId,
571     AppExecFwk::ExtensionAbilityType extensionType)
572 {
573     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
574     auto abms = GetAbilityManager();
575     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
576     TAG_LOGI(AAFwkTag::ABILITYMGR, "name:%{public}s %{public}s, userId:%{public}d",
577         want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str(), userId);
578     return abms->ConnectAbilityCommon(want, connect, callerToken,
579         extensionType, userId);
580 }
581 
ConnectUIServiceExtesnionAbility(const Want & want,sptr<IAbilityConnection> connect,sptr<IRemoteObject> callerToken,int32_t userId)582 ErrCode AbilityManagerClient::ConnectUIServiceExtesnionAbility(
583     const Want &want, sptr<IAbilityConnection> connect, sptr<IRemoteObject> callerToken, int32_t userId)
584 {
585     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
586     auto abms = GetAbilityManager();
587     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
588     TAG_LOGI(AAFwkTag::ABILITYMGR, "name:%{public}s %{public}s, userId:%{public}d",
589         want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str(), userId);
590     return abms->ConnectAbilityCommon(want, connect, callerToken,
591         AppExecFwk::ExtensionAbilityType::UI_SERVICE, userId);
592 }
593 
ConnectDataShareExtensionAbility(const Want & want,sptr<IAbilityConnection> connect,int32_t userId)594 ErrCode AbilityManagerClient::ConnectDataShareExtensionAbility(const Want &want,
595     sptr<IAbilityConnection> connect, int32_t userId)
596 {
597     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
598     auto abms = GetAbilityManager();
599     if (abms == nullptr) {
600         TAG_LOGE(AAFwkTag::SERVICE_EXT, "failed,bundleName:%{public}s,abilityName:%{public}s,uri:%{public}s",
601             want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str(),
602             want.GetUriString().c_str());
603         return ABILITY_SERVICE_NOT_CONNECTED;
604     }
605 
606     TAG_LOGI(AAFwkTag::SERVICE_EXT, "name:%{public}s %{public}s, uri:%{public}s.",
607         want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str(),
608         want.GetUriString().c_str());
609     return abms->ConnectAbilityCommon(want, connect, nullptr, AppExecFwk::ExtensionAbilityType::DATASHARE, userId);
610 }
611 
ConnectExtensionAbility(const Want & want,sptr<IAbilityConnection> connect,int32_t userId)612 ErrCode AbilityManagerClient::ConnectExtensionAbility(const Want &want, sptr<IAbilityConnection> connect,
613     int32_t userId)
614 {
615     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
616     auto abms = GetAbilityManager();
617     if (abms == nullptr) {
618         TAG_LOGE(AAFwkTag::SERVICE_EXT, "failed,bundleName:%{public}s,abilityName:%{public}s",
619             want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str());
620         return ABILITY_SERVICE_NOT_CONNECTED;
621     }
622 
623     TAG_LOGI(AAFwkTag::SERVICE_EXT, "name:%{public}s %{public}s, userId:%{public}d.",
624         want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str(), userId);
625     return abms->ConnectAbilityCommon(want, connect, nullptr, AppExecFwk::ExtensionAbilityType::UNSPECIFIED, userId);
626 }
627 
ConnectUIExtensionAbility(const Want & want,sptr<IAbilityConnection> connect,sptr<SessionInfo> sessionInfo,int32_t userId,sptr<UIExtensionAbilityConnectInfo> connectInfo)628 ErrCode AbilityManagerClient::ConnectUIExtensionAbility(const Want &want, sptr<IAbilityConnection> connect,
629     sptr<SessionInfo> sessionInfo, int32_t userId, sptr<UIExtensionAbilityConnectInfo> connectInfo)
630 {
631     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
632     auto abms = GetAbilityManager();
633     if (abms == nullptr) {
634         TAG_LOGE(AAFwkTag::ABILITYMGR, "failed,bundleName:%{public}s,abilityName:%{public}s,uri:%{public}s",
635             want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str(),
636             want.GetUriString().c_str());
637         return ABILITY_SERVICE_NOT_CONNECTED;
638     }
639 
640     TAG_LOGI(AAFwkTag::ABILITYMGR, "name:%{public}s %{public}s, uri:%{public}s.",
641         want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str(),
642         want.GetUriString().c_str());
643     return abms->ConnectUIExtensionAbility(want, connect, sessionInfo, userId, connectInfo);
644 }
645 
DisconnectAbility(sptr<IAbilityConnection> connect)646 ErrCode AbilityManagerClient::DisconnectAbility(sptr<IAbilityConnection> connect)
647 {
648     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
649     auto abms = GetAbilityManager();
650     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
651     TAG_LOGI(AAFwkTag::SERVICE_EXT, "DisconnectAbility");
652     return abms->DisconnectAbility(connect);
653 }
654 
AcquireDataAbility(const Uri & uri,bool tryBind,sptr<IRemoteObject> callerToken)655 sptr<IAbilityScheduler> AbilityManagerClient::AcquireDataAbility(
656     const Uri &uri, bool tryBind, sptr<IRemoteObject> callerToken)
657 {
658     auto abms = GetAbilityManager();
659     if (!abms) {
660         return nullptr;
661     }
662     return abms->AcquireDataAbility(uri, tryBind, callerToken);
663 }
664 
ReleaseDataAbility(sptr<IAbilityScheduler> dataAbilityScheduler,sptr<IRemoteObject> callerToken)665 ErrCode AbilityManagerClient::ReleaseDataAbility(
666     sptr<IAbilityScheduler> dataAbilityScheduler, sptr<IRemoteObject> callerToken)
667 {
668     auto abms = GetAbilityManager();
669     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
670     return abms->ReleaseDataAbility(dataAbilityScheduler, callerToken);
671 }
672 
DumpState(const std::string & args,std::vector<std::string> & state)673 ErrCode AbilityManagerClient::DumpState(const std::string &args, std::vector<std::string> &state)
674 {
675     auto abms = GetAbilityManager();
676     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
677     abms->DumpState(args, state);
678     return ERR_OK;
679 }
680 
DumpSysState(const std::string & args,std::vector<std::string> & state,bool isClient,bool isUserID,int UserID)681 ErrCode AbilityManagerClient::DumpSysState(
682     const std::string& args, std::vector<std::string>& state, bool isClient, bool isUserID, int UserID)
683 {
684     auto abms = GetAbilityManager();
685     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
686     abms->DumpSysState(args, state, isClient, isUserID, UserID);
687     return ERR_OK;
688 }
689 
Connect()690 ErrCode AbilityManagerClient::Connect()
691 {
692     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
693     std::lock_guard<std::recursive_mutex> lock(mutex_);
694     if (proxy_ != nullptr) {
695         return ERR_OK;
696     }
697     sptr<ISystemAbilityManager> systemManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
698     if (systemManager == nullptr) {
699         TAG_LOGE(AAFwkTag::ABILITYMGR, "get registry failed");
700         return GET_ABILITY_SERVICE_FAILED;
701     }
702     sptr<IRemoteObject> remoteObj = systemManager->GetSystemAbility(ABILITY_MGR_SERVICE_ID);
703     if (remoteObj == nullptr) {
704         TAG_LOGE(AAFwkTag::ABILITYMGR, "connect failed");
705         return GET_ABILITY_SERVICE_FAILED;
706     }
707 
708     deathRecipient_ = sptr<IRemoteObject::DeathRecipient>(new AbilityMgrDeathRecipient());
709     if (deathRecipient_ == nullptr) {
710         TAG_LOGE(AAFwkTag::ABILITYMGR, "create abilityMgrDeathRecipient failed");
711         return GET_ABILITY_SERVICE_FAILED;
712     }
713     if ((remoteObj->IsProxyObject()) && (!remoteObj->AddDeathRecipient(deathRecipient_))) {
714         TAG_LOGE(AAFwkTag::ABILITYMGR, "add deathRecipient failed");
715         return GET_ABILITY_SERVICE_FAILED;
716     }
717 
718     proxy_ = iface_cast<IAbilityManager>(remoteObj);
719     TAG_LOGD(AAFwkTag::ABILITYMGR, "Connect ability manager service success.");
720     return ERR_OK;
721 }
722 
RemoveDeathRecipient()723 void AbilityManagerClient::RemoveDeathRecipient()
724 {
725     TAG_LOGI(AAFwkTag::ABILITYMGR, "RemoveDeathRecipient");
726     std::lock_guard<std::recursive_mutex> lock(mutex_);
727     if (proxy_ == nullptr) {
728         TAG_LOGI(AAFwkTag::ABILITYMGR, "null proxy_");
729         return;
730     }
731     if (deathRecipient_ == nullptr) {
732         TAG_LOGI(AAFwkTag::ABILITYMGR, "null deathRecipient_");
733         return;
734     }
735     auto serviceRemote = proxy_->AsObject();
736     if (serviceRemote != nullptr && serviceRemote->RemoveDeathRecipient(deathRecipient_)) {
737         proxy_ = nullptr;
738         deathRecipient_ = nullptr;
739         TAG_LOGI(AAFwkTag::ABILITYMGR, "remove success");
740     }
741 }
742 
StopServiceAbility(const Want & want,sptr<IRemoteObject> token)743 ErrCode AbilityManagerClient::StopServiceAbility(const Want &want, sptr<IRemoteObject> token)
744 {
745     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
746     auto abms = GetAbilityManager();
747     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
748     return abms->StopServiceAbility(want, -1, token);
749 }
750 
KillProcess(const std::string & bundleName,bool clearPageStack,int32_t appIndex)751 ErrCode AbilityManagerClient::KillProcess(const std::string &bundleName, bool clearPageStack, int32_t appIndex)
752 {
753     TAG_LOGI(AAFwkTag::ABILITYMGR, "enter");
754     auto abms = GetAbilityManager();
755     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
756     return abms->KillProcess(bundleName, clearPageStack, appIndex);
757 }
758 
759 #ifdef ABILITY_COMMAND_FOR_TEST
ForceTimeoutForTest(const std::string & abilityName,const std::string & state)760 ErrCode AbilityManagerClient::ForceTimeoutForTest(const std::string &abilityName, const std::string &state)
761 {
762     TAG_LOGD(AAFwkTag::ABILITYMGR, "enter");
763     auto abms = GetAbilityManager();
764     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
765     return abms->ForceTimeoutForTest(abilityName, state);
766 }
767 #endif
768 
ContinueMission(const std::string & srcDeviceId,const std::string & dstDeviceId,int32_t missionId,sptr<IRemoteObject> callback,AAFwk::WantParams & wantParams)769 ErrCode AbilityManagerClient::ContinueMission(const std::string &srcDeviceId, const std::string &dstDeviceId,
770     int32_t missionId, sptr<IRemoteObject> callback, AAFwk::WantParams &wantParams)
771 {
772     if (srcDeviceId.empty() || dstDeviceId.empty() || callback == nullptr) {
773         TAG_LOGE(AAFwkTag::ABILITYMGR, "srcDeviceId or dstDeviceId or callback null");
774         return ERR_INVALID_VALUE;
775     }
776 
777     auto abms = GetAbilityManager();
778     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
779     int result = abms->ContinueMission(srcDeviceId, dstDeviceId, missionId, callback, wantParams);
780     return result;
781 }
782 
ContinueMission(AAFwk::ContinueMissionInfo continueMissionInfo,const sptr<IRemoteObject> & callback)783 ErrCode AbilityManagerClient::ContinueMission(AAFwk::ContinueMissionInfo continueMissionInfo,
784     const sptr<IRemoteObject> &callback)
785 
786 {
787     if (continueMissionInfo.srcDeviceId.empty() || continueMissionInfo.dstDeviceId.empty() || callback == nullptr) {
788         TAG_LOGE(AAFwkTag::ABILITYMGR, "srcDeviceId or dstDeviceId or callback null");
789         return ERR_INVALID_VALUE;
790     }
791 
792     auto abms = GetAbilityManager();
793     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
794     int result = abms->ContinueMission(continueMissionInfo, callback);
795     return result;
796 }
797 
StartContinuation(const Want & want,sptr<IRemoteObject> abilityToken,int32_t status)798 ErrCode AbilityManagerClient::StartContinuation(const Want &want, sptr<IRemoteObject> abilityToken,
799     int32_t status)
800 {
801     auto abms = GetAbilityManager();
802     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
803     int result = abms->StartContinuation(want, abilityToken, status);
804     return result;
805 }
806 
NotifyCompleteContinuation(const std::string & deviceId,int32_t sessionId,bool isSuccess)807 void AbilityManagerClient::NotifyCompleteContinuation(const std::string &deviceId,
808     int32_t sessionId, bool isSuccess)
809 {
810     auto abms = GetAbilityManager();
811     CHECK_POINTER_RETURN(abms);
812     abms->NotifyCompleteContinuation(deviceId, sessionId, isSuccess);
813 }
814 
ContinueAbility(const std::string & deviceId,int32_t missionId,uint32_t versionCode)815 ErrCode AbilityManagerClient::ContinueAbility(const std::string &deviceId, int32_t missionId, uint32_t versionCode)
816 {
817     auto abms = GetAbilityManager();
818     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
819     return abms->ContinueAbility(deviceId, missionId, versionCode);
820 }
821 
NotifyContinuationResult(int32_t missionId,int32_t result)822 ErrCode AbilityManagerClient::NotifyContinuationResult(int32_t missionId, int32_t result)
823 {
824     auto abms = GetAbilityManager();
825     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
826     return abms->NotifyContinuationResult(missionId, result);
827 }
828 
LockMissionForCleanup(int32_t missionId)829 ErrCode AbilityManagerClient::LockMissionForCleanup(int32_t missionId)
830 {
831 #ifdef SUPPORT_SCREEN
832     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
833         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
834         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
835         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, LockMissionForCleanup");
836         auto err = sceneSessionManager->LockSession(missionId);
837         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
838             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, LockMissionForCleanup err");
839             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
840         }
841         return static_cast<int>(err);
842     }
843 #endif //SUPPORT_SCREEN
844     auto abms = GetAbilityManager();
845     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
846     return abms->LockMissionForCleanup(missionId);
847 }
848 
UnlockMissionForCleanup(int32_t missionId)849 ErrCode AbilityManagerClient::UnlockMissionForCleanup(int32_t missionId)
850 {
851     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
852 #ifdef SUPPORT_SCREEN
853     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
854         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
855         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
856         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, UnlockMissionForCleanup");
857         auto err = sceneSessionManager->UnlockSession(missionId);
858         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
859             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, UnlockMissionForCleanup err");
860             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
861         }
862         return static_cast<int>(err);
863     }
864 #endif //SUPPORT_SCREEN
865     auto abms = GetAbilityManager();
866     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
867     return abms->UnlockMissionForCleanup(missionId);
868 }
869 
SetLockedState(int32_t sessionId,bool lockedState)870 void AbilityManagerClient::SetLockedState(int32_t sessionId, bool lockedState)
871 {
872     auto abms = GetAbilityManager();
873     CHECK_POINTER_RETURN(abms);
874     abms->SetLockedState(sessionId, lockedState);
875 }
876 
RegisterMissionListener(sptr<IMissionListener> listener)877 ErrCode AbilityManagerClient::RegisterMissionListener(sptr<IMissionListener> listener)
878 {
879 #ifdef SUPPORT_SCREEN
880     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
881         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
882         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
883         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, RegisterMissionListener");
884         auto err = sceneSessionManager->RegisterSessionListener(listener);
885         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
886             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, RegisterMissionListener err");
887             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
888         }
889         return static_cast<int>(err);
890     }
891 #endif //SUPPORT_SCREEN
892     auto abms = GetAbilityManager();
893     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
894     return abms->RegisterMissionListener(listener);
895 }
896 
UnRegisterMissionListener(sptr<IMissionListener> listener)897 ErrCode AbilityManagerClient::UnRegisterMissionListener(sptr<IMissionListener> listener)
898 {
899 #ifdef SUPPORT_SCREEN
900     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
901         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
902         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
903         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, UnRegisterMissionListener");
904         auto err = sceneSessionManager->UnRegisterSessionListener(listener);
905         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
906             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, UnRegisterMissionListener err");
907             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
908         }
909         return static_cast<int>(err);
910     }
911 #endif //SUPPORT_SCREEN
912     auto abms = GetAbilityManager();
913     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
914     return abms->UnRegisterMissionListener(listener);
915 }
916 
RegisterMissionListener(const std::string & deviceId,sptr<IRemoteMissionListener> listener)917 ErrCode AbilityManagerClient::RegisterMissionListener(const std::string &deviceId,
918     sptr<IRemoteMissionListener> listener)
919 {
920     auto abms = GetAbilityManager();
921     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
922     return abms->RegisterMissionListener(deviceId, listener);
923 }
924 
RegisterOnListener(const std::string & type,sptr<IRemoteOnListener> listener)925 ErrCode AbilityManagerClient::RegisterOnListener(const std::string &type,
926     sptr<IRemoteOnListener> listener)
927 {
928     auto abms = GetAbilityManager();
929     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
930     return abms->RegisterOnListener(type, listener);
931 }
932 
RegisterOffListener(const std::string & type,sptr<IRemoteOnListener> listener)933 ErrCode AbilityManagerClient::RegisterOffListener(const std::string &type,
934     sptr<IRemoteOnListener> listener)
935 {
936     auto abms = GetAbilityManager();
937     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
938     return abms->RegisterOffListener(type, listener);
939 }
940 
UnRegisterMissionListener(const std::string & deviceId,sptr<IRemoteMissionListener> listener)941 ErrCode AbilityManagerClient::UnRegisterMissionListener(const std::string &deviceId,
942     sptr<IRemoteMissionListener> listener)
943 {
944     auto abms = GetAbilityManager();
945     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
946     return abms->UnRegisterMissionListener(deviceId, listener);
947 }
948 
GetMissionInfos(const std::string & deviceId,int32_t numMax,std::vector<MissionInfo> & missionInfos)949 ErrCode AbilityManagerClient::GetMissionInfos(const std::string& deviceId, int32_t numMax,
950     std::vector<MissionInfo> &missionInfos)
951 {
952     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
953 #ifdef SUPPORT_SCREEN
954     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
955         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
956         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
957         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, GetMissionInfos");
958         auto err = sceneSessionManager->GetSessionInfos(deviceId, numMax, missionInfos);
959         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
960             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, GetMissionInfos err");
961             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
962         }
963         return static_cast<int>(err);
964     }
965 #endif //SUPPORT_SCREEN
966     auto abms = GetAbilityManager();
967     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
968     return abms->GetMissionInfos(deviceId, numMax, missionInfos);
969 }
970 
GetMissionInfo(const std::string & deviceId,int32_t missionId,MissionInfo & missionInfo)971 ErrCode AbilityManagerClient::GetMissionInfo(const std::string& deviceId, int32_t missionId,
972     MissionInfo &missionInfo)
973 {
974     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
975 #ifdef SUPPORT_SCREEN
976     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
977         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
978         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
979         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, GetMissionInfo");
980         auto err = sceneSessionManager->GetSessionInfo(deviceId, missionId, missionInfo);
981         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
982             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, GetMissionInfo err");
983             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
984         }
985         return static_cast<int>(err);
986     }
987 #endif //SUPPORT_SCREEN
988     auto abms = GetAbilityManager();
989     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
990     return abms->GetMissionInfo(deviceId, missionId, missionInfo);
991 }
992 
CleanMission(int32_t missionId)993 ErrCode AbilityManagerClient::CleanMission(int32_t missionId)
994 {
995     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
996 #ifdef SUPPORT_SCREEN
997     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
998         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
999         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
1000         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, CleanMission");
1001         auto err = sceneSessionManager->ClearSession(missionId);
1002         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
1003             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, CleanMission err");
1004             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
1005         }
1006         return static_cast<int>(err);
1007     }
1008 #endif //SUPPORT_SCREEN
1009     auto abms = GetAbilityManager();
1010     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1011     return abms->CleanMission(missionId);
1012 }
1013 
CleanAllMissions()1014 ErrCode AbilityManagerClient::CleanAllMissions()
1015 {
1016     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
1017 #ifdef SUPPORT_SCREEN
1018     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
1019         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
1020         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
1021         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, CleanAllMissions");
1022         auto err = sceneSessionManager->ClearAllSessions();
1023         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
1024             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, CleanAllMissions err");
1025             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
1026         }
1027         return static_cast<int>(err);
1028     }
1029 #endif //SUPPORT_SCREEN
1030     auto abms = GetAbilityManager();
1031     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1032     return abms->CleanAllMissions();
1033 }
1034 
MoveMissionToFront(int32_t missionId)1035 ErrCode AbilityManagerClient::MoveMissionToFront(int32_t missionId)
1036 {
1037     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
1038     auto abms = GetAbilityManager();
1039     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1040     return abms->MoveMissionToFront(missionId);
1041 }
1042 
MoveMissionToFront(int32_t missionId,const StartOptions & startOptions)1043 ErrCode AbilityManagerClient::MoveMissionToFront(int32_t missionId, const StartOptions &startOptions)
1044 {
1045     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
1046     auto abms = GetAbilityManager();
1047     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1048     return abms->MoveMissionToFront(missionId, startOptions);
1049 }
1050 
MoveMissionsToForeground(const std::vector<int32_t> & missionIds,int32_t topMissionId)1051 ErrCode AbilityManagerClient::MoveMissionsToForeground(const std::vector<int32_t>& missionIds, int32_t topMissionId)
1052 {
1053     TAG_LOGI(AAFwkTag::ABILITYMGR, "call,topMissionId:%{public}d", topMissionId);
1054 #ifdef SUPPORT_SCREEN
1055     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
1056         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
1057         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
1058         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, MoveMissionsToForeground");
1059         auto err = sceneSessionManager->MoveSessionsToForeground(missionIds, topMissionId);
1060         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
1061             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, MoveMissionsToForeground err");
1062             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
1063         }
1064         auto abms = GetAbilityManager();
1065         CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1066         if (missionIds.empty()) {
1067             return ERR_INVALID_VALUE;
1068         }
1069         int32_t missionId = topMissionId;
1070         if (topMissionId > 0) {
1071             missionId = topMissionId;
1072         } else {
1073             missionId = missionIds[0];
1074         }
1075         auto errAMS = abms->MoveMissionToFront(missionId);
1076         return static_cast<int>(errAMS);
1077     }
1078 #endif //SUPPORT_SCREEN
1079     auto abms = GetAbilityManager();
1080     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1081     return abms->MoveMissionsToForeground(missionIds, topMissionId);
1082 }
1083 
MoveMissionsToBackground(const std::vector<int32_t> & missionIds,std::vector<int32_t> & result)1084 ErrCode AbilityManagerClient::MoveMissionsToBackground(const std::vector<int32_t>& missionIds,
1085     std::vector<int32_t>& result)
1086 {
1087     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1088 #ifdef SUPPORT_SCREEN
1089     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
1090         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
1091         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
1092         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, MoveMissionsToBackground");
1093         auto err = sceneSessionManager->MoveSessionsToBackground(missionIds, result);
1094         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
1095             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, MoveMissionsToBackground err");
1096             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
1097         }
1098         return static_cast<int>(err);
1099     }
1100 #endif //SUPPORT_SCREEN
1101     auto abms = GetAbilityManager();
1102     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1103     return abms->MoveMissionsToBackground(missionIds, result);
1104 }
1105 
GetMissionIdByToken(sptr<IRemoteObject> token,int32_t & missionId)1106 ErrCode AbilityManagerClient::GetMissionIdByToken(sptr<IRemoteObject> token, int32_t &missionId)
1107 {
1108     auto abms = GetAbilityManager();
1109     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1110     missionId = abms->GetMissionIdByToken(token);
1111     if (missionId <= 0) {
1112         TAG_LOGE(AAFwkTag::ABILITYMGR, "get missionid failed");
1113         return MISSION_NOT_FOUND;
1114     }
1115     return ERR_OK;
1116 }
1117 
StartAbilityByCall(const Want & want,sptr<IAbilityConnection> connect,bool isSilent)1118 ErrCode AbilityManagerClient::StartAbilityByCall(const Want &want, sptr<IAbilityConnection> connect, bool isSilent)
1119 {
1120     auto abms = GetAbilityManager();
1121     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1122     TAG_LOGI(AAFwkTag::ABILITYMGR, "ByCall, ability:%{public}s, isSilent::%{public}d",
1123         want.GetElement().GetURI().c_str(), isSilent);
1124     return abms->StartAbilityByCall(want, connect, nullptr, DEFAULT_INVAL_VALUE, isSilent);
1125 }
1126 
StartAbilityByCall(const Want & want,sptr<IAbilityConnection> connect,sptr<IRemoteObject> callToken,int32_t accountId,bool isSilent)1127 ErrCode AbilityManagerClient::StartAbilityByCall(const Want &want, sptr<IAbilityConnection> connect,
1128     sptr<IRemoteObject> callToken, int32_t accountId, bool isSilent)
1129 {
1130     auto abms = GetAbilityManager();
1131     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1132     TAG_LOGI(AAFwkTag::ABILITYMGR, "ByCall, ability:%{public}s, userId:%{public}d, isSilent::%{public}d",
1133         want.GetElement().GetURI().c_str(), accountId, isSilent);
1134     return abms->StartAbilityByCall(want, connect, callToken, accountId, isSilent);
1135 }
1136 
StartAbilityByCallWithErrMsg(const Want & want,sptr<IAbilityConnection> connect,sptr<IRemoteObject> callToken,int32_t accountId,std::string & errMsg,bool isSilent)1137 ErrCode AbilityManagerClient::StartAbilityByCallWithErrMsg(const Want &want, sptr<IAbilityConnection> connect,
1138     sptr<IRemoteObject> callToken, int32_t accountId, std::string &errMsg, bool isSilent)
1139 {
1140     auto abms = GetAbilityManager();
1141     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1142     TAG_LOGI(AAFwkTag::ABILITYMGR, "ByCall, ability:%{public}s, userId:%{public}d, isSilent::%{public}d",
1143         want.GetElement().GetURI().c_str(), accountId, isSilent);
1144     return abms->StartAbilityByCallWithErrMsg(want, connect, callToken, accountId, errMsg, isSilent);
1145 }
1146 
CallRequestDone(sptr<IRemoteObject> token,sptr<IRemoteObject> callStub)1147 void AbilityManagerClient::CallRequestDone(sptr<IRemoteObject> token, sptr<IRemoteObject> callStub)
1148 {
1149     auto abms = GetAbilityManager();
1150     CHECK_POINTER_RETURN(abms);
1151     abms->CallRequestDone(token, callStub);
1152 }
1153 
GetAbilityTokenByCalleeObj(sptr<IRemoteObject> callStub,sptr<IRemoteObject> & token)1154 void AbilityManagerClient::GetAbilityTokenByCalleeObj(sptr<IRemoteObject> callStub, sptr<IRemoteObject> &token)
1155 {
1156     auto abms = GetAbilityManager();
1157     CHECK_POINTER_RETURN(abms);
1158     abms->GetAbilityTokenByCalleeObj(callStub, token);
1159 }
1160 
ReleaseCall(sptr<IAbilityConnection> connect,const AppExecFwk::ElementName & element)1161 ErrCode AbilityManagerClient::ReleaseCall(
1162     sptr<IAbilityConnection> connect, const AppExecFwk::ElementName &element)
1163 {
1164     auto abms = GetAbilityManager();
1165     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1166     return abms->ReleaseCall(connect, element);
1167 }
1168 
GetAbilityRunningInfos(std::vector<AbilityRunningInfo> & info)1169 ErrCode AbilityManagerClient::GetAbilityRunningInfos(std::vector<AbilityRunningInfo> &info)
1170 {
1171     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
1172     auto abms = GetAbilityManager();
1173     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1174     return abms->GetAbilityRunningInfos(info);
1175 }
1176 
GetExtensionRunningInfos(int upperLimit,std::vector<ExtensionRunningInfo> & info)1177 ErrCode AbilityManagerClient::GetExtensionRunningInfos(int upperLimit, std::vector<ExtensionRunningInfo> &info)
1178 {
1179     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
1180     auto abms = GetAbilityManager();
1181     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1182     return abms->GetExtensionRunningInfos(upperLimit, info);
1183 }
1184 
GetProcessRunningInfos(std::vector<AppExecFwk::RunningProcessInfo> & info)1185 ErrCode AbilityManagerClient::GetProcessRunningInfos(std::vector<AppExecFwk::RunningProcessInfo> &info)
1186 {
1187     auto abms = GetAbilityManager();
1188     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1189     return abms->GetProcessRunningInfos(info);
1190 }
1191 
GetAllIntentExemptionInfo(std::vector<AppExecFwk::IntentExemptionInfo> & info)1192 ErrCode AbilityManagerClient::GetAllIntentExemptionInfo(std::vector<AppExecFwk::IntentExemptionInfo> &info)
1193 {
1194     auto abms = GetAbilityManager();
1195     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1196     return abms->GetAllIntentExemptionInfo(info);
1197 }
1198 
RequestDialogService(const Want & want,sptr<IRemoteObject> callerToken)1199 ErrCode AbilityManagerClient::RequestDialogService(
1200     const Want &want, sptr<IRemoteObject> callerToken)
1201 {
1202     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
1203     auto abms = GetAbilityManager();
1204     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1205     TAG_LOGI(AAFwkTag::ABILITYMGR, "request:%{public}s", want.GetElement().GetURI().c_str());
1206     HandleDlpApp(const_cast<Want &>(want));
1207     return abms->RequestDialogService(want, callerToken);
1208 }
1209 
ReportDrawnCompleted(sptr<IRemoteObject> callerToken)1210 ErrCode AbilityManagerClient::ReportDrawnCompleted(sptr<IRemoteObject> callerToken)
1211 {
1212     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1213     auto abilityMgr = GetAbilityManager();
1214     CHECK_POINTER_RETURN_NOT_CONNECTED(abilityMgr);
1215     return abilityMgr->ReportDrawnCompleted(callerToken);
1216 }
1217 
1218 /**
1219  * Start synchronizing remote device mission
1220  * @param devId, deviceId.
1221  * @param fixConflict, resolve synchronizing conflicts flag.
1222  * @param tag, call tag.
1223  * @return Returns ERR_OK on success, others on failure.
1224  */
StartSyncRemoteMissions(const std::string & devId,bool fixConflict,int64_t tag)1225 ErrCode AbilityManagerClient::StartSyncRemoteMissions(const std::string &devId, bool fixConflict, int64_t tag)
1226 {
1227     auto abms = GetAbilityManager();
1228     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1229     return abms->StartSyncRemoteMissions(devId, fixConflict, tag);
1230 }
1231 
StopSyncRemoteMissions(const std::string & devId)1232 ErrCode AbilityManagerClient::StopSyncRemoteMissions(const std::string &devId)
1233 {
1234     auto abms = GetAbilityManager();
1235     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1236     return abms->StopSyncRemoteMissions(devId);
1237 }
1238 
StartUser(int accountId,sptr<IUserCallback> callback,bool isAppRecovery)1239 ErrCode AbilityManagerClient::StartUser(int accountId, sptr<IUserCallback> callback, bool isAppRecovery)
1240 {
1241     TAG_LOGI(AAFwkTag::ABILITYMGR, "accountId:%{public}d, isAppRecovery:%{public}d",
1242         accountId, isAppRecovery);
1243     auto abms = GetAbilityManager();
1244     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1245     return abms->StartUser(accountId, callback, isAppRecovery);
1246 }
1247 
StopUser(int accountId,sptr<IUserCallback> callback)1248 ErrCode AbilityManagerClient::StopUser(int accountId, sptr<IUserCallback> callback)
1249 {
1250     TAG_LOGI(AAFwkTag::ABILITYMGR, "accountId:%{public}d", accountId);
1251     auto abms = GetAbilityManager();
1252     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1253     return abms->StopUser(accountId, callback);
1254 }
1255 
LogoutUser(int32_t accountId,sptr<IUserCallback> callback)1256 ErrCode AbilityManagerClient::LogoutUser(int32_t accountId, sptr<IUserCallback> callback)
1257 {
1258     auto abms = GetAbilityManager();
1259     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1260     return abms->LogoutUser(accountId, callback);
1261 }
1262 
RegisterSnapshotHandler(sptr<ISnapshotHandler> handler)1263 ErrCode AbilityManagerClient::RegisterSnapshotHandler(sptr<ISnapshotHandler> handler)
1264 {
1265     auto abms = GetAbilityManager();
1266     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1267     return abms->RegisterSnapshotHandler(handler);
1268 }
1269 
GetMissionSnapshot(const std::string & deviceId,int32_t missionId,MissionSnapshot & snapshot,bool isLowResolution)1270 ErrCode AbilityManagerClient::GetMissionSnapshot(const std::string& deviceId, int32_t missionId,
1271     MissionSnapshot& snapshot, bool isLowResolution)
1272 {
1273     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
1274 #ifdef SUPPORT_SCREEN
1275     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
1276         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
1277         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
1278         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, GetMissionSnapshot");
1279         auto err = sceneSessionManager->GetSessionSnapshot(deviceId, missionId, snapshot, isLowResolution);
1280         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
1281             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, GetMissionSnapshot err");
1282             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
1283         }
1284         return static_cast<int>(err);
1285     }
1286 #endif //SUPPORT_SCREEN
1287     auto abms = GetAbilityManager();
1288     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1289     return abms->GetMissionSnapshot(deviceId, missionId, snapshot, isLowResolution);
1290 }
1291 
StartUserTest(const Want & want,sptr<IRemoteObject> observer)1292 ErrCode AbilityManagerClient::StartUserTest(const Want &want, sptr<IRemoteObject> observer)
1293 {
1294     auto abms = GetAbilityManager();
1295     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1296     return abms->StartUserTest(want, observer);
1297 }
1298 
FinishUserTest(const std::string & msg,const int64_t & resultCode,const std::string & bundleName)1299 ErrCode AbilityManagerClient::FinishUserTest(
1300     const std::string &msg, const int64_t &resultCode, const std::string &bundleName)
1301 {
1302     auto abms = GetAbilityManager();
1303     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1304     return abms->FinishUserTest(msg, resultCode, bundleName);
1305 }
1306 
GetTopAbility(sptr<IRemoteObject> & token)1307 ErrCode AbilityManagerClient::GetTopAbility(sptr<IRemoteObject> &token)
1308 {
1309     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
1310 #ifdef SUPPORT_SCREEN
1311     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
1312         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
1313         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
1314         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, GetTopAbility");
1315         auto ret = static_cast<int>(sceneSessionManager->GetFocusSessionToken(token));
1316         if (ret != ERR_OK) {
1317             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, GetTopAbility err: %{public}d", ret);
1318         }
1319         return ret;
1320     }
1321 #endif //SUPPORT_SCREEN
1322     auto abms = GetAbilityManager();
1323     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1324     return abms->GetTopAbility(token);
1325 }
1326 
GetElementNameByToken(sptr<IRemoteObject> token,bool isNeedLocalDeviceId)1327 AppExecFwk::ElementName AbilityManagerClient::GetElementNameByToken(sptr<IRemoteObject> token,
1328     bool isNeedLocalDeviceId)
1329 {
1330     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
1331     auto abms = GetAbilityManager();
1332     if (abms == nullptr) {
1333         TAG_LOGE(AAFwkTag::ABILITYMGR, "null abms");
1334         return {};
1335     }
1336     return abms->GetElementNameByToken(token, isNeedLocalDeviceId);
1337 }
1338 
CheckUIExtensionIsFocused(uint32_t uiExtensionTokenId,bool & isFocused)1339 ErrCode AbilityManagerClient::CheckUIExtensionIsFocused(uint32_t uiExtensionTokenId, bool& isFocused)
1340 {
1341     auto abms = GetAbilityManager();
1342     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1343     return abms->CheckUIExtensionIsFocused(uiExtensionTokenId, isFocused);
1344 }
1345 
DelegatorDoAbilityForeground(sptr<IRemoteObject> token)1346 ErrCode AbilityManagerClient::DelegatorDoAbilityForeground(sptr<IRemoteObject> token)
1347 {
1348 #ifdef SUPPORT_SCREEN
1349     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
1350         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
1351         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
1352         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, DelegatorDoAbilityForeground");
1353         sceneSessionManager->PendingSessionToForeground(token);
1354     }
1355 #endif //SUPPORT_SCREEN
1356     auto abms = GetAbilityManager();
1357     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1358     return abms->DelegatorDoAbilityForeground(token);
1359 }
1360 
DelegatorDoAbilityBackground(sptr<IRemoteObject> token)1361 ErrCode AbilityManagerClient::DelegatorDoAbilityBackground(sptr<IRemoteObject> token)
1362 {
1363 #ifdef SUPPORT_SCREEN
1364     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
1365         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
1366         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
1367         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, DelegatorDoAbilityBackground");
1368         sceneSessionManager->PendingSessionToBackgroundForDelegator(token);
1369     }
1370 #endif //SUPPORT_SCREEN
1371     auto abms = GetAbilityManager();
1372     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1373     return abms->DelegatorDoAbilityBackground(token);
1374 }
1375 
SetMissionContinueState(sptr<IRemoteObject> token,const AAFwk::ContinueState & state,sptr<IRemoteObject> sessionToken)1376 ErrCode AbilityManagerClient::SetMissionContinueState(sptr<IRemoteObject> token,
1377     const AAFwk::ContinueState &state, sptr<IRemoteObject> sessionToken)
1378 {
1379     TAG_LOGI(AAFwkTag::ABILITYMGR,
1380         "called state:%{public}d", state);
1381 #ifdef SUPPORT_SCREEN
1382     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled() && sessionToken) {
1383         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
1384         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
1385         uint32_t value = static_cast<uint32_t>(state);
1386         Rosen::ContinueState continueState = static_cast<Rosen::ContinueState>(value);
1387         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, SetMissionContinueState");
1388         auto ret = static_cast<int>(sceneSessionManager->SetSessionContinueState(sessionToken, continueState));
1389         if (ret != ERR_OK) {
1390             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, SetMissionContinueState err");
1391         }
1392         return ret;
1393     }
1394 #endif //SUPPORT_SCREEN
1395     auto abms = GetAbilityManager();
1396     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1397     return abms->SetMissionContinueState(token, state);
1398 }
1399 
1400 #ifdef SUPPORT_SCREEN
SetMissionLabel(sptr<IRemoteObject> token,const std::string & label)1401 ErrCode AbilityManagerClient::SetMissionLabel(sptr<IRemoteObject> token, const std::string& label)
1402 {
1403     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
1404         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
1405         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
1406         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, SetMissionLabel");
1407         auto err = sceneSessionManager->SetSessionLabel(token, label);
1408         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
1409             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, SetMissionLabel err");
1410             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
1411         }
1412         return static_cast<int>(err);
1413     }
1414     auto abms = GetAbilityManager();
1415     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1416     return abms->SetMissionLabel(token, label);
1417 }
1418 
SetMissionIcon(sptr<IRemoteObject> abilityToken,std::shared_ptr<OHOS::Media::PixelMap> icon)1419 ErrCode AbilityManagerClient::SetMissionIcon(
1420     sptr<IRemoteObject> abilityToken, std::shared_ptr<OHOS::Media::PixelMap> icon)
1421 {
1422     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
1423         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
1424         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
1425         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, SetMissionIcon");
1426         auto err = sceneSessionManager->SetSessionIcon(abilityToken, icon);
1427         if (SCB_TO_MISSION_ERROR_CODE_MAP.count(err)) {
1428             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, SetMissionIcon err");
1429             return SCB_TO_MISSION_ERROR_CODE_MAP[err];
1430         }
1431         return static_cast<int>(err);
1432     }
1433     auto abms = GetAbilityManager();
1434     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1435     return abms->SetMissionIcon(abilityToken, icon);
1436 }
1437 
RegisterWindowManagerServiceHandler(sptr<IWindowManagerServiceHandler> handler,bool animationEnabled)1438 ErrCode AbilityManagerClient::RegisterWindowManagerServiceHandler(sptr<IWindowManagerServiceHandler> handler,
1439     bool animationEnabled)
1440 {
1441     auto abms = GetAbilityManager();
1442     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1443     return abms->RegisterWindowManagerServiceHandler(handler, animationEnabled);
1444 }
1445 
CompleteFirstFrameDrawing(sptr<IRemoteObject> abilityToken)1446 void AbilityManagerClient::CompleteFirstFrameDrawing(sptr<IRemoteObject> abilityToken)
1447 {
1448     auto abms = GetAbilityManager();
1449     CHECK_POINTER_RETURN(abms);
1450     abms->CompleteFirstFrameDrawing(abilityToken);
1451 }
1452 
CompleteFirstFrameDrawing(int32_t sessionId)1453 void AbilityManagerClient::CompleteFirstFrameDrawing(int32_t sessionId)
1454 {
1455     auto abms = GetAbilityManager();
1456     CHECK_POINTER_RETURN(abms);
1457     abms->CompleteFirstFrameDrawing(sessionId);
1458 }
1459 
PrepareTerminateAbility(sptr<IRemoteObject> token,sptr<IPrepareTerminateCallback> callback)1460 ErrCode AbilityManagerClient::PrepareTerminateAbility(sptr<IRemoteObject> token,
1461     sptr<IPrepareTerminateCallback> callback)
1462 {
1463     if (callback == nullptr) {
1464         TAG_LOGE(AAFwkTag::ABILITYMGR, "null callback");
1465         return ERR_INVALID_VALUE;
1466     }
1467     auto abms = GetAbilityManager();
1468     if (abms == nullptr) {
1469         TAG_LOGE(AAFwkTag::ABILITYMGR, "null abms");
1470         return ERR_INVALID_VALUE;
1471     }
1472     return abms->PrepareTerminateAbility(token, callback);
1473 }
1474 
GetDialogSessionInfo(const std::string & dialogSessionId,sptr<DialogSessionInfo> & info)1475 ErrCode AbilityManagerClient::GetDialogSessionInfo(const std::string &dialogSessionId, sptr<DialogSessionInfo> &info)
1476 {
1477     auto abms = GetAbilityManager();
1478     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1479     return abms->GetDialogSessionInfo(dialogSessionId, info);
1480 }
1481 
SendDialogResult(const Want & want,const std::string & dialogSessionId,const bool isAllow)1482 ErrCode AbilityManagerClient::SendDialogResult(const Want &want, const std::string &dialogSessionId, const bool isAllow)
1483 {
1484     auto abms = GetAbilityManager();
1485     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1486     return abms->SendDialogResult(want, dialogSessionId, isAllow);
1487 }
1488 #endif
1489 
DoAbilityForeground(sptr<IRemoteObject> token,uint32_t flag)1490 ErrCode AbilityManagerClient::DoAbilityForeground(sptr<IRemoteObject> token, uint32_t flag)
1491 {
1492     auto abms = GetAbilityManager();
1493     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1494     return abms->DoAbilityForeground(token, flag);
1495 }
1496 
DoAbilityBackground(sptr<IRemoteObject> token,uint32_t flag)1497 ErrCode AbilityManagerClient::DoAbilityBackground(sptr<IRemoteObject> token, uint32_t flag)
1498 {
1499     auto abms = GetAbilityManager();
1500     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1501     return abms->DoAbilityBackground(token, flag);
1502 }
1503 
SetAbilityController(sptr<AppExecFwk::IAbilityController> abilityController,bool imAStabilityTest)1504 ErrCode AbilityManagerClient::SetAbilityController(sptr<AppExecFwk::IAbilityController> abilityController,
1505     bool imAStabilityTest)
1506 {
1507     auto abms = GetAbilityManager();
1508     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1509     return abms->SetAbilityController(abilityController, imAStabilityTest);
1510 }
1511 #ifdef SUPPORT_SCREEN
UpdateMissionSnapShot(sptr<IRemoteObject> token,std::shared_ptr<Media::PixelMap> pixelMap)1512 void AbilityManagerClient::UpdateMissionSnapShot(sptr<IRemoteObject> token,
1513     std::shared_ptr<Media::PixelMap> pixelMap)
1514 {
1515     auto abms = GetAbilityManager();
1516     CHECK_POINTER_RETURN(abms);
1517     return abms->UpdateMissionSnapShot(token, pixelMap);
1518 }
1519 #endif // SUPPORT_SCREEN
EnableRecoverAbility(sptr<IRemoteObject> token)1520 void AbilityManagerClient::EnableRecoverAbility(sptr<IRemoteObject> token)
1521 {
1522     auto abms = GetAbilityManager();
1523     CHECK_POINTER_RETURN(abms);
1524     return abms->EnableRecoverAbility(token);
1525 }
1526 
ScheduleRecoverAbility(sptr<IRemoteObject> token,int32_t reason,const Want * want)1527 void AbilityManagerClient::ScheduleRecoverAbility(sptr<IRemoteObject> token, int32_t reason, const Want *want)
1528 {
1529     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1530     auto abms = GetAbilityManager();
1531     CHECK_POINTER_RETURN(abms);
1532     return abms->ScheduleRecoverAbility(token, reason, want);
1533 }
1534 
SubmitSaveRecoveryInfo(sptr<IRemoteObject> token)1535 void AbilityManagerClient::SubmitSaveRecoveryInfo(sptr<IRemoteObject> token)
1536 {
1537     auto abms = GetAbilityManager();
1538     CHECK_POINTER_RETURN(abms);
1539     return abms->SubmitSaveRecoveryInfo(token);
1540 }
1541 
ScheduleClearRecoveryPageStack()1542 void AbilityManagerClient::ScheduleClearRecoveryPageStack()
1543 {
1544     auto abms = GetAbilityManager();
1545     CHECK_POINTER_RETURN(abms);
1546     return abms->ScheduleClearRecoveryPageStack();
1547 }
1548 
GetAbilityManager()1549 sptr<IAbilityManager> AbilityManagerClient::GetAbilityManager()
1550 {
1551     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
1552     std::lock_guard<std::recursive_mutex> lock(mutex_);
1553     if (!proxy_) {
1554         (void)Connect();
1555     }
1556 
1557     return proxy_;
1558 }
1559 
ResetProxy(wptr<IRemoteObject> remote)1560 void AbilityManagerClient::ResetProxy(wptr<IRemoteObject> remote)
1561 {
1562     std::lock_guard<std::recursive_mutex> lock(mutex_);
1563     if (!proxy_) {
1564         return;
1565     }
1566 
1567     auto serviceRemote = proxy_->AsObject();
1568     if ((serviceRemote != nullptr) && (serviceRemote == remote.promote())) {
1569         TAG_LOGD(AAFwkTag::ABILITYMGR, "To remove death recipient.");
1570         serviceRemote->RemoveDeathRecipient(deathRecipient_);
1571         proxy_ = nullptr;
1572     }
1573 }
1574 
OnRemoteDied(const wptr<IRemoteObject> & remote)1575 void AbilityManagerClient::AbilityMgrDeathRecipient::OnRemoteDied(const wptr<IRemoteObject>& remote)
1576 {
1577     TAG_LOGD(AAFwkTag::ABILITYMGR, "AbilityMgrDeathRecipient handle remote died.");
1578     AbilityManagerClient::GetInstance()->ResetProxy(remote);
1579 }
1580 
FreeInstallAbilityFromRemote(const Want & want,sptr<IRemoteObject> callback,int32_t userId,int requestCode)1581 ErrCode AbilityManagerClient::FreeInstallAbilityFromRemote(const Want &want, sptr<IRemoteObject> callback,
1582     int32_t userId, int requestCode)
1583 {
1584     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1585     auto abms = GetAbilityManager();
1586     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1587     return abms->FreeInstallAbilityFromRemote(want, callback, userId, requestCode);
1588 }
1589 
GetTopAbility(bool isNeedLocalDeviceId)1590 AppExecFwk::ElementName AbilityManagerClient::GetTopAbility(bool isNeedLocalDeviceId)
1591 {
1592     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
1593     {
1594         std::lock_guard<std::mutex> lock_l(topAbilityMutex_);
1595 #ifdef SUPPORT_SCREEN
1596         if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
1597             AppExecFwk::ElementName elementName = {};
1598             auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
1599             if (sceneSessionManager == nullptr) {
1600                 TAG_LOGE(AAFwkTag::ABILITYMGR, "get sceneSessionManager failed");
1601                 return elementName;
1602             }
1603             TAG_LOGI(AAFwkTag::ABILITYMGR, "call GetTopAbility");
1604             (void)sceneSessionManager->GetFocusSessionElement(elementName);
1605             return elementName;
1606         }
1607 #endif //SUPPORT_SCREEN
1608     }
1609     TAG_LOGD(AAFwkTag::ABILITYMGR, "enter.");
1610     auto abms = GetAbilityManager();
1611     if (abms == nullptr) {
1612         TAG_LOGE(AAFwkTag::ABILITYMGR, "null abms");
1613         return {};
1614     }
1615 
1616     return abms->GetTopAbility(isNeedLocalDeviceId);
1617 }
1618 
DumpAbilityInfoDone(std::vector<std::string> & infos,sptr<IRemoteObject> callerToken)1619 ErrCode AbilityManagerClient::DumpAbilityInfoDone(std::vector<std::string> &infos,
1620     sptr<IRemoteObject> callerToken)
1621 {
1622     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1623     auto abms = GetAbilityManager();
1624     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1625     return abms->DumpAbilityInfoDone(infos, callerToken);
1626 }
1627 
HandleDlpApp(Want & want)1628 void AbilityManagerClient::HandleDlpApp(Want &want)
1629 {
1630 #ifdef WITH_DLP
1631     if (!want.GetParams().HasParam(DLP_PARAMS_SANDBOX)) {
1632         HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, "Security::DlpPermission::DlpFileKits::GetSandboxFlag");
1633         bool sandboxFlag = Security::DlpPermission::DlpFileKits::GetSandboxFlag(want);
1634         want.SetParam(DLP_PARAMS_SANDBOX, sandboxFlag);
1635     }
1636 #endif // WITH_DLP
1637 }
1638 
AddFreeInstallObserver(const sptr<IRemoteObject> callerToken,const sptr<AbilityRuntime::IFreeInstallObserver> observer)1639 ErrCode AbilityManagerClient::AddFreeInstallObserver(const sptr<IRemoteObject> callerToken,
1640     const sptr<AbilityRuntime::IFreeInstallObserver> observer)
1641 {
1642     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1643     auto abms = GetAbilityManager();
1644     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1645     return abms->AddFreeInstallObserver(callerToken, observer);
1646 }
1647 
IsValidMissionIds(const std::vector<int32_t> & missionIds,std::vector<MissionValidResult> & results)1648 int32_t AbilityManagerClient::IsValidMissionIds(
1649     const std::vector<int32_t> &missionIds, std::vector<MissionValidResult> &results)
1650 {
1651     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1652 #ifdef SUPPORT_SCREEN
1653     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
1654         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
1655         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
1656         std::vector<bool> isValidList;
1657         auto err = sceneSessionManager->IsValidSessionIds(missionIds, isValidList);
1658         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, IsValidSessionIds: %{public}d, size: %{public}d",
1659             static_cast<int>(err), static_cast<int32_t>(isValidList.size()));
1660         for (auto i = 0; i < static_cast<int32_t>(isValidList.size()); ++i) {
1661             MissionValidResult missionResult = {};
1662             missionResult.missionId = missionIds.at(i);
1663             missionResult.isValid = isValidList.at(i);
1664             results.push_back(missionResult);
1665         }
1666         return static_cast<int>(err);
1667     }
1668 #endif //SUPPORT_SCREEN
1669     auto abms = GetAbilityManager();
1670     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1671     return abms->IsValidMissionIds(missionIds, results);
1672 }
1673 
VerifyPermission(const std::string & permission,int pid,int uid)1674 ErrCode AbilityManagerClient::VerifyPermission(const std::string &permission, int pid, int uid)
1675 {
1676     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1677     auto abms = GetAbilityManager();
1678     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1679     return abms->VerifyPermission(permission, pid, uid);
1680 }
1681 
AcquireShareData(int32_t missionId,sptr<IAcquireShareDataCallback> shareData)1682 ErrCode AbilityManagerClient::AcquireShareData(
1683     int32_t missionId, sptr<IAcquireShareDataCallback> shareData)
1684 {
1685     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1686     auto abms = GetAbilityManager();
1687     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1688     return abms->AcquireShareData(missionId, shareData);
1689 }
1690 
ShareDataDone(sptr<IRemoteObject> token,int32_t resultCode,int32_t uniqueId,WantParams & wantParam)1691 ErrCode AbilityManagerClient::ShareDataDone(
1692     sptr<IRemoteObject> token, int32_t resultCode, int32_t uniqueId, WantParams &wantParam)
1693 {
1694     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1695     auto abms = GetAbilityManager();
1696     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1697     return abms->ShareDataDone(token, resultCode, uniqueId, wantParam);
1698 }
1699 
ForceExitApp(const int32_t pid,const ExitReason & exitReason)1700 ErrCode AbilityManagerClient::ForceExitApp(const int32_t pid, const ExitReason &exitReason)
1701 {
1702     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1703     auto abms = GetAbilityManager();
1704     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1705     return abms->ForceExitApp(pid, exitReason);
1706 }
1707 
RecordAppExitReason(const ExitReason & exitReason)1708 ErrCode AbilityManagerClient::RecordAppExitReason(const ExitReason &exitReason)
1709 {
1710     TAG_LOGD(AAFwkTag::ABILITYMGR, "RecordAppExitReason reason:%{public}d, exitMsg: %{public}s", exitReason.reason,
1711         exitReason.exitMsg.c_str());
1712     auto abms = GetAbilityManager();
1713     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1714     return abms->RecordAppExitReason(exitReason);
1715 }
1716 
RecordProcessExitReason(const int32_t pid,const ExitReason & exitReason)1717 ErrCode AbilityManagerClient::RecordProcessExitReason(const int32_t pid, const ExitReason &exitReason)
1718 {
1719     TAG_LOGD(AAFwkTag::ABILITYMGR, "RecordProcessExitReason pid:%{public}d, reason:%{public}d, exitMsg: %{public}s",
1720         pid, exitReason.reason, exitReason.exitMsg.c_str());
1721     auto abms = GetAbilityManager();
1722     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1723     return abms->RecordProcessExitReason(pid, exitReason);
1724 }
1725 
RecordProcessExitReason(int32_t pid,int32_t uid,const ExitReason & exitReason)1726 ErrCode AbilityManagerClient::RecordProcessExitReason(int32_t pid, int32_t uid, const ExitReason &exitReason)
1727 {
1728     TAG_LOGD(AAFwkTag::ABILITYMGR, "[EXIT_REASON_TAG] pid:%{public}d, reason:%{public}d, exitMsg: %{public}s",
1729         pid, exitReason.reason, exitReason.exitMsg.c_str());
1730     auto abms = GetAbilityManager();
1731     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1732     return abms->RecordProcessExitReason(pid, uid, exitReason);
1733 }
1734 
SetRootSceneSession(sptr<IRemoteObject> rootSceneSession)1735 void AbilityManagerClient::SetRootSceneSession(sptr<IRemoteObject> rootSceneSession)
1736 {
1737     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1738     auto abms = GetAbilityManager();
1739     CHECK_POINTER_RETURN(abms);
1740     abms->SetRootSceneSession(rootSceneSession);
1741 }
1742 
CallUIAbilityBySCB(sptr<SessionInfo> sessionInfo,bool & isColdStart)1743 void AbilityManagerClient::CallUIAbilityBySCB(sptr<SessionInfo> sessionInfo, bool &isColdStart)
1744 {
1745     auto abms = GetAbilityManager();
1746     CHECK_POINTER_RETURN(abms);
1747     TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, CallUIAbilityBySCB target: %{public}s",
1748         sessionInfo->want.GetElement().GetURI().c_str());
1749     abms->CallUIAbilityBySCB(sessionInfo, isColdStart);
1750     TAG_LOGD(AAFwkTag::ABILITYMGR, "scb call, CallUIAbilityBySCB, isColdStart: %{public}d", isColdStart);
1751 }
1752 
StartSpecifiedAbilityBySCB(const Want & want)1753 int32_t AbilityManagerClient::StartSpecifiedAbilityBySCB(const Want &want)
1754 {
1755     auto abms = GetAbilityManager();
1756     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1757     TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, StartSpecifiedAbilityBySCB, target: %{public}s",
1758         want.GetElement().GetURI().c_str());
1759     return abms->StartSpecifiedAbilityBySCB(want);
1760 }
1761 
NotifySaveAsResult(const Want & want,int resultCode,int requestCode)1762 ErrCode AbilityManagerClient::NotifySaveAsResult(const Want &want, int resultCode, int requestCode)
1763 {
1764     TAG_LOGD(AAFwkTag::ABILITYMGR, "call.");
1765     auto abms = GetAbilityManager();
1766     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1767     return abms->NotifySaveAsResult(want, resultCode, requestCode);
1768 }
1769 
SetSessionManagerService(sptr<IRemoteObject> sessionManagerService)1770 ErrCode AbilityManagerClient::SetSessionManagerService(sptr<IRemoteObject> sessionManagerService)
1771 {
1772     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1773     auto abms = GetAbilityManager();
1774     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1775     return abms->SetSessionManagerService(sessionManagerService);
1776 }
1777 
RegisterIAbilityManagerCollaborator(int32_t type,sptr<IAbilityManagerCollaborator> impl)1778 ErrCode AbilityManagerClient::RegisterIAbilityManagerCollaborator(
1779     int32_t type, sptr<IAbilityManagerCollaborator> impl)
1780 {
1781     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1782     auto abms = GetAbilityManager();
1783     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1784     return abms->RegisterIAbilityManagerCollaborator(type, impl);
1785 }
1786 
UnregisterIAbilityManagerCollaborator(int32_t type)1787 ErrCode AbilityManagerClient::UnregisterIAbilityManagerCollaborator(int32_t type)
1788 {
1789     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1790     auto abms = GetAbilityManager();
1791     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1792     return abms->UnregisterIAbilityManagerCollaborator(type);
1793 }
1794 
GetAbilityManagerCollaborator()1795 sptr<IAbilityManagerCollaborator> AbilityManagerClient::GetAbilityManagerCollaborator()
1796 {
1797     auto abms = GetAbilityManager();
1798     if (abms == nullptr) {
1799         TAG_LOGE(AAFwkTag::ABILITYMGR, "abms nullptr");
1800         return nullptr;
1801     }
1802     return abms->GetAbilityManagerCollaborator();
1803 }
1804 
RegisterStatusBarDelegate(sptr<AbilityRuntime::IStatusBarDelegate> delegate)1805 ErrCode AbilityManagerClient::RegisterStatusBarDelegate(sptr<AbilityRuntime::IStatusBarDelegate> delegate)
1806 {
1807     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
1808     auto abms = GetAbilityManager();
1809     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1810     return abms->RegisterStatusBarDelegate(delegate);
1811 }
1812 
KillProcessWithPrepareTerminate(const std::vector<int32_t> & pids)1813 ErrCode AbilityManagerClient::KillProcessWithPrepareTerminate(const std::vector<int32_t>& pids)
1814 {
1815     TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, KillProcessWithPrepareTerminate");
1816     auto abms = GetAbilityManager();
1817     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1818     return abms->KillProcessWithPrepareTerminate(pids);
1819 }
1820 
KillProcessWithReason(int32_t pid,const ExitReason & reason)1821 ErrCode AbilityManagerClient::KillProcessWithReason(int32_t pid, const ExitReason &reason)
1822 {
1823     TAG_LOGE(AAFwkTag::ABILITYMGR, "kill pid:%{public}d, reason:%{public}d, subReason:%{public}d, exitMsg:%{public}s",
1824         pid, reason.reason, reason.subReason, reason.exitMsg.c_str());
1825     auto abms = GetAbilityManager();
1826     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1827     return abms->KillProcessWithReason(pid, reason);
1828 }
1829 
RegisterAutoStartupSystemCallback(sptr<IRemoteObject> callback)1830 ErrCode AbilityManagerClient::RegisterAutoStartupSystemCallback(sptr<IRemoteObject> callback)
1831 {
1832     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1833     auto abms = GetAbilityManager();
1834     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1835     return abms->RegisterAutoStartupSystemCallback(callback);
1836 }
1837 
UnregisterAutoStartupSystemCallback(sptr<IRemoteObject> callback)1838 ErrCode AbilityManagerClient::UnregisterAutoStartupSystemCallback(sptr<IRemoteObject> callback)
1839 {
1840     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1841     auto abms = GetAbilityManager();
1842     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1843     return abms->UnregisterAutoStartupSystemCallback(callback);
1844 }
1845 
SetApplicationAutoStartup(const AutoStartupInfo & info)1846 ErrCode AbilityManagerClient::SetApplicationAutoStartup(const AutoStartupInfo &info)
1847 {
1848     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1849     auto abms = GetAbilityManager();
1850     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1851     return abms->SetApplicationAutoStartup(info);
1852 }
1853 
CancelApplicationAutoStartup(const AutoStartupInfo & info)1854 ErrCode AbilityManagerClient::CancelApplicationAutoStartup(const AutoStartupInfo &info)
1855 {
1856     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1857     auto abms = GetAbilityManager();
1858     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1859     return abms->CancelApplicationAutoStartup(info);
1860 }
1861 
QueryAllAutoStartupApplications(std::vector<AutoStartupInfo> & infoList)1862 ErrCode AbilityManagerClient::QueryAllAutoStartupApplications(std::vector<AutoStartupInfo> &infoList)
1863 {
1864     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1865     auto abms = GetAbilityManager();
1866     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1867     return abms->QueryAllAutoStartupApplications(infoList);
1868 }
1869 
PrepareTerminateAbilityBySCB(sptr<SessionInfo> sessionInfo,bool & isPrepareTerminate)1870 ErrCode AbilityManagerClient::PrepareTerminateAbilityBySCB(sptr<SessionInfo> sessionInfo,
1871     bool &isPrepareTerminate)
1872 {
1873     auto abms = GetAbilityManager();
1874     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1875     TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, PrepareTerminateAbilityBySCB");
1876     return abms->PrepareTerminateAbilityBySCB(sessionInfo, isPrepareTerminate);
1877 }
1878 
RegisterSessionHandler(sptr<IRemoteObject> object)1879 ErrCode AbilityManagerClient::RegisterSessionHandler(sptr<IRemoteObject> object)
1880 {
1881     TAG_LOGD(AAFwkTag::ABILITYMGR, "call");
1882     auto abms = GetAbilityManager();
1883     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1884     return abms->RegisterSessionHandler(object);
1885 }
1886 
RegisterAppDebugListener(sptr<AppExecFwk::IAppDebugListener> listener)1887 ErrCode AbilityManagerClient::RegisterAppDebugListener(sptr<AppExecFwk::IAppDebugListener> listener)
1888 {
1889     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1890     auto abms = GetAbilityManager();
1891     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1892     return abms->RegisterAppDebugListener(listener);
1893 }
1894 
UnregisterAppDebugListener(sptr<AppExecFwk::IAppDebugListener> listener)1895 ErrCode AbilityManagerClient::UnregisterAppDebugListener(sptr<AppExecFwk::IAppDebugListener> listener)
1896 {
1897     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1898     auto abms = GetAbilityManager();
1899     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1900     return abms->UnregisterAppDebugListener(listener);
1901 }
1902 
AttachAppDebug(const std::string & bundleName,bool isDebugFromLocal)1903 ErrCode AbilityManagerClient::AttachAppDebug(const std::string &bundleName, bool isDebugFromLocal)
1904 {
1905     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1906     auto abms = GetAbilityManager();
1907     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1908     return abms->AttachAppDebug(bundleName, isDebugFromLocal);
1909 }
1910 
DetachAppDebug(const std::string & bundleName,bool isDebugFromLocal)1911 ErrCode AbilityManagerClient::DetachAppDebug(const std::string &bundleName, bool isDebugFromLocal)
1912 {
1913     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1914     auto abms = GetAbilityManager();
1915     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1916     return abms->DetachAppDebug(bundleName, isDebugFromLocal);
1917 }
1918 
ExecuteIntent(uint64_t key,sptr<IRemoteObject> callerToken,const InsightIntentExecuteParam & param)1919 ErrCode AbilityManagerClient::ExecuteIntent(uint64_t key, sptr<IRemoteObject> callerToken,
1920     const InsightIntentExecuteParam &param)
1921 {
1922     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1923     auto abms = GetAbilityManager();
1924     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1925     return abms->ExecuteIntent(key, callerToken, param);
1926 }
1927 
IsAbilityControllerStart(const Want & want)1928 bool AbilityManagerClient::IsAbilityControllerStart(const Want &want)
1929 {
1930     TAG_LOGD(AAFwkTag::ABILITYMGR, "call");
1931     auto abms = GetAbilityManager();
1932     if (abms == nullptr) {
1933         TAG_LOGE(AAFwkTag::ABILITYMGR, "null abms");
1934         return true;
1935     }
1936     return abms->IsAbilityControllerStart(want);
1937 }
1938 
ExecuteInsightIntentDone(sptr<IRemoteObject> token,uint64_t intentId,const InsightIntentExecuteResult & result)1939 ErrCode AbilityManagerClient::ExecuteInsightIntentDone(sptr<IRemoteObject> token, uint64_t intentId,
1940     const InsightIntentExecuteResult &result)
1941 {
1942     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1943     auto abms = GetAbilityManager();
1944     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1945     return abms->ExecuteInsightIntentDone(token, intentId, result);
1946 }
1947 
GetForegroundUIAbilities(std::vector<AppExecFwk::AbilityStateData> & list)1948 int32_t AbilityManagerClient::GetForegroundUIAbilities(std::vector<AppExecFwk::AbilityStateData> &list)
1949 {
1950     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
1951     auto abms = GetAbilityManager();
1952     CHECK_POINTER_RETURN_INVALID_VALUE(abms);
1953     return abms->GetForegroundUIAbilities(list);
1954 }
1955 
OpenFile(const Uri & uri,uint32_t flag)1956 int32_t AbilityManagerClient::OpenFile(const Uri& uri, uint32_t flag)
1957 {
1958     TAG_LOGD(AAFwkTag::ABILITYMGR, "call OpenFile");
1959     auto abms = GetAbilityManager();
1960     if (abms == nullptr) {
1961         TAG_LOGE(AAFwkTag::ABILITYMGR, "null abms");
1962         return true;
1963     }
1964     return abms->OpenFile(uri, flag);
1965 }
1966 
RequestAssertFaultDialog(const sptr<IRemoteObject> & callback,const AAFwk::WantParams & wantParams)1967 int32_t AbilityManagerClient::RequestAssertFaultDialog(
1968     const sptr<IRemoteObject> &callback, const AAFwk::WantParams &wantParams)
1969 {
1970     TAG_LOGD(AAFwkTag::ABILITYMGR, "Request to display assert fault dialog.");
1971     auto abms = GetAbilityManager();
1972     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1973     return abms->RequestAssertFaultDialog(callback, wantParams);
1974 }
1975 
NotifyDebugAssertResult(uint64_t assertFaultSessionId,AAFwk::UserStatus userStatus)1976 int32_t AbilityManagerClient::NotifyDebugAssertResult(uint64_t assertFaultSessionId, AAFwk::UserStatus userStatus)
1977 {
1978     TAG_LOGD(AAFwkTag::ABILITYMGR, "Notify user action result to assert fault callback.");
1979     auto abms = GetAbilityManager();
1980     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1981     return abms->NotifyDebugAssertResult(assertFaultSessionId, userStatus);
1982 }
1983 
UpdateSessionInfoBySCB(std::list<SessionInfo> & sessionInfos,int32_t userId,std::vector<int32_t> & sessionIds)1984 int32_t AbilityManagerClient::UpdateSessionInfoBySCB(std::list<SessionInfo> &sessionInfos, int32_t userId,
1985     std::vector<int32_t> &sessionIds)
1986 {
1987     auto abms = GetAbilityManager();
1988     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1989     TAG_LOGD(AAFwkTag::ABILITYMGR, "scb call, UpdateSessionInfoBySCB");
1990     return abms->UpdateSessionInfoBySCB(sessionInfos, userId, sessionIds);
1991 }
1992 
GetUIExtensionRootHostInfo(const sptr<IRemoteObject> token,UIExtensionHostInfo & hostInfo,int32_t userId)1993 ErrCode AbilityManagerClient::GetUIExtensionRootHostInfo(const sptr<IRemoteObject> token,
1994     UIExtensionHostInfo &hostInfo, int32_t userId)
1995 {
1996     TAG_LOGD(AAFwkTag::ABILITYMGR, "Get ui extension host info.");
1997     auto abms = GetAbilityManager();
1998     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
1999     return abms->GetUIExtensionRootHostInfo(token, hostInfo, userId);
2000 }
2001 
GetUIExtensionSessionInfo(const sptr<IRemoteObject> token,UIExtensionSessionInfo & uiExtensionSessionInfo,int32_t userId)2002 ErrCode AbilityManagerClient::GetUIExtensionSessionInfo(const sptr<IRemoteObject> token,
2003     UIExtensionSessionInfo &uiExtensionSessionInfo, int32_t userId)
2004 {
2005     TAG_LOGD(AAFwkTag::ABILITYMGR, "Get ui extension session info.");
2006     auto abms = GetAbilityManager();
2007     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2008     return abms->GetUIExtensionSessionInfo(token, uiExtensionSessionInfo, userId);
2009 }
2010 
RestartApp(const AAFwk::Want & want)2011 int32_t AbilityManagerClient::RestartApp(const AAFwk::Want &want)
2012 {
2013     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
2014     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
2015     auto abms = GetAbilityManager();
2016     CHECK_POINTER_RETURN_INVALID_VALUE(abms);
2017     return abms->RestartApp(want);
2018 }
2019 
OpenAtomicService(Want & want,const StartOptions & options,sptr<IRemoteObject> callerToken,int32_t requestCode,int32_t userId)2020 int32_t AbilityManagerClient::OpenAtomicService(Want& want, const StartOptions &options,
2021     sptr<IRemoteObject> callerToken, int32_t requestCode, int32_t userId)
2022 {
2023     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
2024     auto abms = GetAbilityManager();
2025     CHECK_POINTER_RETURN_INVALID_VALUE(abms);
2026     return abms->OpenAtomicService(want, options, callerToken, requestCode, userId);
2027 }
2028 
SetResidentProcessEnabled(const std::string & bundleName,bool enable)2029 int32_t AbilityManagerClient::SetResidentProcessEnabled(const std::string &bundleName, bool enable)
2030 {
2031     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
2032     auto abms = GetAbilityManager();
2033     CHECK_POINTER_RETURN_INVALID_VALUE(abms);
2034     return abms->SetResidentProcessEnabled(bundleName, enable);
2035 }
2036 
IsEmbeddedOpenAllowed(sptr<IRemoteObject> callerToken,const std::string & appId)2037 bool AbilityManagerClient::IsEmbeddedOpenAllowed(sptr<IRemoteObject> callerToken, const std::string &appId)
2038 {
2039     TAG_LOGD(AAFwkTag::ABILITYMGR, "Get ui extension host info.");
2040     auto abms = GetAbilityManager();
2041     if (abms == nullptr) {
2042         TAG_LOGE(AAFwkTag::ABILITYMGR, "null abms");
2043         return false;
2044     }
2045     return abms->IsEmbeddedOpenAllowed(callerToken, appId);
2046 }
2047 
StartShortcut(const Want & want,const StartOptions & startOptions)2048 int32_t AbilityManagerClient::StartShortcut(const Want &want, const StartOptions &startOptions)
2049 {
2050     TAG_LOGD(AAFwkTag::ABILITYMGR, "start short cut.");
2051     auto abms = GetAbilityManager();
2052     CHECK_POINTER_RETURN_INVALID_VALUE(abms);
2053     return abms->StartShortcut(want, startOptions);
2054 }
2055 
GetAbilityStateByPersistentId(int32_t persistentId,bool & state)2056 int32_t AbilityManagerClient::GetAbilityStateByPersistentId(int32_t persistentId, bool &state)
2057 {
2058     TAG_LOGD(AAFwkTag::ABILITYMGR, "called");
2059     auto abms = GetAbilityManager();
2060     CHECK_POINTER_RETURN_INVALID_VALUE(abms);
2061     return abms->GetAbilityStateByPersistentId(persistentId, state);
2062 }
2063 
TransferAbilityResultForExtension(const sptr<IRemoteObject> & callerToken,int32_t resultCode,const Want & want)2064 int32_t AbilityManagerClient::TransferAbilityResultForExtension(const sptr<IRemoteObject> &callerToken,
2065     int32_t resultCode, const Want &want)
2066 {
2067     auto abms = GetAbilityManager();
2068     CHECK_POINTER_RETURN_INVALID_VALUE(abms);
2069     return abms->TransferAbilityResultForExtension(callerToken, resultCode, want);
2070 }
2071 
NotifyFrozenProcessByRSS(const std::vector<int32_t> & pidList,int32_t uid)2072 void AbilityManagerClient::NotifyFrozenProcessByRSS(const std::vector<int32_t> &pidList, int32_t uid)
2073 {
2074     auto abms = GetAbilityManager();
2075     CHECK_POINTER_RETURN(abms);
2076     return abms->NotifyFrozenProcessByRSS(pidList, uid);
2077 }
2078 
CleanUIAbilityBySCB(sptr<SessionInfo> sessionInfo,bool isUserRequestedExit,uint32_t sceneFlag)2079 ErrCode AbilityManagerClient::CleanUIAbilityBySCB(sptr<SessionInfo> sessionInfo,
2080     bool isUserRequestedExit, uint32_t sceneFlag)
2081 {
2082     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
2083     if (sessionInfo == nullptr) {
2084         TAG_LOGE(AAFwkTag::ABILITYMGR, "null sessionInfo");
2085         return ERR_INVALID_VALUE;
2086     }
2087     auto abms = GetAbilityManager();
2088     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2089     TAG_LOGD(AAFwkTag::ABILITYMGR, "scb call, CleanUIAbilityBySCB");
2090     return abms->CleanUIAbilityBySCB(sessionInfo, isUserRequestedExit, sceneFlag);
2091 }
2092 
PreStartMission(const std::string & bundleName,const std::string & moduleName,const std::string & abilityName,const std::string & startTime)2093 ErrCode AbilityManagerClient::PreStartMission(const std::string& bundleName, const std::string& moduleName,
2094     const std::string& abilityName, const std::string& startTime)
2095 {
2096     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
2097     auto abms = GetAbilityManager();
2098     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2099     return abms->PreStartMission(bundleName, moduleName, abilityName, startTime);
2100 }
2101 
OpenLink(const Want & want,sptr<IRemoteObject> callerToken,int32_t userId,int requestCode)2102 ErrCode AbilityManagerClient::OpenLink(const Want& want, sptr<IRemoteObject> callerToken,
2103     int32_t userId, int requestCode)
2104 {
2105     auto abms = GetAbilityManager();
2106     CHECK_POINTER_RETURN_INVALID_VALUE(abms);
2107     return abms->OpenLink(want, callerToken, userId, requestCode);
2108 }
2109 
TerminateMission(int32_t missionId)2110 ErrCode AbilityManagerClient::TerminateMission(int32_t missionId)
2111 {
2112 #ifdef SUPPORT_SCREEN
2113     if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
2114         auto sceneSessionManager = SessionManagerLite::GetInstance().GetSceneSessionManagerLiteProxy();
2115         CHECK_POINTER_RETURN_INVALID_VALUE(sceneSessionManager);
2116         TAG_LOGI(AAFwkTag::ABILITYMGR, "scb call, TerminateMission");
2117         auto err = sceneSessionManager->TerminateSessionByPersistentId(missionId);
2118         if (err != OHOS::Rosen::WMError::WM_OK) {
2119             TAG_LOGE(AAFwkTag::ABILITYMGR, "scb call, TerminateMission err: %{public}d.", static_cast<int32_t>(err));
2120         }
2121         if (err == Rosen::WMError::WM_ERROR_INVALID_PERMISSION) {
2122             return CHECK_PERMISSION_FAILED;
2123         }
2124         if (err == Rosen::WMError::WM_ERROR_NOT_SYSTEM_APP) {
2125             return ERR_NOT_SYSTEM_APP;
2126         }
2127         return static_cast<int32_t>(err);
2128     }
2129 #endif //SUPPORT_SCREEN
2130     auto abms = GetAbilityManager();
2131     CHECK_POINTER_RETURN_INVALID_VALUE(abms);
2132     int32_t ret = abms->TerminateMission(missionId);
2133     if (ret != ERR_OK) {
2134         TAG_LOGE(AAFwkTag::ABILITYMGR, "failed,err:%{public}d", ret);
2135     }
2136     return ret;
2137 }
2138 
BlockAllAppStart(bool flag)2139 ErrCode AbilityManagerClient::BlockAllAppStart(bool flag)
2140 {
2141     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
2142     auto abms = GetAbilityManager();
2143     CHECK_POINTER_RETURN_INVALID_VALUE(abms);
2144     return abms->BlockAllAppStart(flag);
2145 }
2146 
UpdateAssociateConfigList(const std::map<std::string,std::list<std::string>> & configs,const std::list<std::string> & exportConfigs,int32_t flag)2147 ErrCode AbilityManagerClient::UpdateAssociateConfigList(const std::map<std::string, std::list<std::string>>& configs,
2148     const std::list<std::string>& exportConfigs, int32_t flag)
2149 {
2150     TAG_LOGD(AAFwkTag::ABILITYMGR, "call.");
2151     auto abms = GetAbilityManager();
2152     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2153     return abms->UpdateAssociateConfigList(configs, exportConfigs, flag);
2154 }
2155 
AddQueryERMSObserver(sptr<IRemoteObject> callerToken,sptr<AbilityRuntime::IQueryERMSObserver> observer)2156 ErrCode AbilityManagerClient::AddQueryERMSObserver(sptr<IRemoteObject> callerToken,
2157     sptr<AbilityRuntime::IQueryERMSObserver> observer)
2158 {
2159     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
2160     auto abms = GetAbilityManager();
2161     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2162     return abms->AddQueryERMSObserver(callerToken, observer);
2163 }
2164 
QueryAtomicServiceStartupRule(sptr<IRemoteObject> callerToken,const std::string & appId,const std::string & startTime,AtomicServiceStartupRule & rule)2165 ErrCode AbilityManagerClient::QueryAtomicServiceStartupRule(sptr<IRemoteObject> callerToken,
2166     const std::string &appId, const std::string &startTime, AtomicServiceStartupRule &rule)
2167 {
2168     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
2169     auto abms = GetAbilityManager();
2170     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2171     return abms->QueryAtomicServiceStartupRule(callerToken, appId, startTime, rule);
2172 }
2173 
StartSelfUIAbility(const Want & want)2174 ErrCode AbilityManagerClient::StartSelfUIAbility(const Want &want)
2175 {
2176     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
2177     auto abms = GetAbilityManager();
2178     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2179     return abms->StartSelfUIAbility(want);
2180 }
2181 
StartSelfUIAbilityWithStartOptions(const Want & want,const StartOptions & options)2182 ErrCode AbilityManagerClient::StartSelfUIAbilityWithStartOptions(const Want &want,
2183     const StartOptions &options)
2184 {
2185     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
2186     auto abms = GetAbilityManager();
2187     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2188     return abms->StartSelfUIAbilityWithStartOptions(want, options);
2189 }
2190 
PrepareTerminateAbilityDone(sptr<IRemoteObject> token,bool isTerminate)2191 void AbilityManagerClient::PrepareTerminateAbilityDone(sptr<IRemoteObject> token, bool isTerminate)
2192 {
2193     TAG_LOGI(AAFwkTag::ABILITYMGR, "call PrepareTerminateAbilityDone");
2194     auto abms = GetAbilityManager();
2195     CHECK_POINTER_RETURN(abms);
2196     return abms->PrepareTerminateAbilityDone(token, isTerminate);
2197 }
2198 
KillProcessWithPrepareTerminateDone(const std::string & moduleName,int32_t prepareTermination,bool isExist)2199 void AbilityManagerClient::KillProcessWithPrepareTerminateDone(const std::string &moduleName,
2200     int32_t prepareTermination, bool isExist)
2201 {
2202     TAG_LOGI(AAFwkTag::ABILITYMGR, "call KillProcessWithPrepareTerminateDone");
2203     auto abms = GetAbilityManager();
2204     CHECK_POINTER_RETURN(abms);
2205     return abms->KillProcessWithPrepareTerminateDone(moduleName, prepareTermination, isExist);
2206 }
2207 
KillProcessForPermissionUpdate(uint32_t accessTokenId)2208 ErrCode AbilityManagerClient::KillProcessForPermissionUpdate(uint32_t accessTokenId)
2209 {
2210     auto abms = GetAbilityManager();
2211     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2212     return abms->KillProcessForPermissionUpdate(accessTokenId);
2213 }
2214 
RegisterHiddenStartObserver(const sptr<IHiddenStartObserver> & observer)2215 ErrCode AbilityManagerClient::RegisterHiddenStartObserver(const sptr<IHiddenStartObserver> &observer)
2216 {
2217     TAG_LOGI(AAFwkTag::ABILITYMGR, "call RegisterHiddenStartObserver");
2218     auto abms = GetAbilityManager();
2219     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2220     return abms->RegisterHiddenStartObserver(observer);
2221 }
2222 
UnregisterHiddenStartObserver(const sptr<IHiddenStartObserver> & observer)2223 ErrCode AbilityManagerClient::UnregisterHiddenStartObserver(const sptr<IHiddenStartObserver> &observer)
2224 {
2225     TAG_LOGI(AAFwkTag::ABILITYMGR, "call UnregisterHiddenStartObserver");
2226     auto abms = GetAbilityManager();
2227     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2228     return abms->UnregisterHiddenStartObserver(observer);
2229 }
2230 
QueryPreLoadUIExtensionRecord(const AppExecFwk::ElementName & element,const std::string & moduleName,const std::string & hostBundleName,int32_t & recordNum,int32_t userId)2231 ErrCode AbilityManagerClient::QueryPreLoadUIExtensionRecord(const AppExecFwk::ElementName &element,
2232                                                             const std::string &moduleName,
2233                                                             const std::string &hostBundleName,
2234                                                             int32_t &recordNum,
2235                                                             int32_t userId)
2236 {
2237     TAG_LOGD(AAFwkTag::UI_EXT, "call QueryPreLoadUIExtensionRecord");
2238     auto abms = GetAbilityManager();
2239     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2240     return abms->QueryPreLoadUIExtensionRecord(
2241         element, moduleName, hostBundleName, recordNum, userId);
2242 }
2243 
RevokeDelegator(sptr<IRemoteObject> token)2244 ErrCode AbilityManagerClient::RevokeDelegator(sptr<IRemoteObject> token)
2245 {
2246     TAG_LOGD(AAFwkTag::ABILITYMGR, "call RevokeDelegator");
2247     auto abms = GetAbilityManager();
2248     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2249     return abms->RevokeDelegator(token);
2250 }
2251 
GetAllInsightIntentInfo(AbilityRuntime::GetInsightIntentFlag flag,std::vector<InsightIntentInfoForQuery> & infos)2252 ErrCode AbilityManagerClient::GetAllInsightIntentInfo(
2253     AbilityRuntime::GetInsightIntentFlag flag,
2254     std::vector<InsightIntentInfoForQuery> &infos)
2255 {
2256     TAG_LOGD(AAFwkTag::INTENT, "call GetAllInsightIntentInfo");
2257     auto abms = GetAbilityManager();
2258     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2259     return abms->GetAllInsightIntentInfo(flag, infos);
2260 }
2261 
GetInsightIntentInfoByBundleName(AbilityRuntime::GetInsightIntentFlag flag,const std::string & bundleName,std::vector<InsightIntentInfoForQuery> & infos)2262 ErrCode AbilityManagerClient::GetInsightIntentInfoByBundleName(
2263     AbilityRuntime::GetInsightIntentFlag flag,
2264     const std::string &bundleName,
2265     std::vector<InsightIntentInfoForQuery> &infos)
2266 {
2267     TAG_LOGD(AAFwkTag::INTENT, "call GetInsightIntentInfoByBundleName");
2268     auto abms = GetAbilityManager();
2269     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2270     return abms->GetInsightIntentInfoByBundleName(flag, bundleName, infos);
2271 }
2272 
GetInsightIntentInfoByIntentName(AbilityRuntime::GetInsightIntentFlag flag,const std::string & bundleName,const std::string & moduleName,const std::string & intentName,InsightIntentInfoForQuery & info)2273 ErrCode AbilityManagerClient::GetInsightIntentInfoByIntentName(
2274     AbilityRuntime::GetInsightIntentFlag flag,
2275     const std::string &bundleName,
2276     const std::string &moduleName,
2277     const std::string &intentName,
2278     InsightIntentInfoForQuery &info)
2279 {
2280     TAG_LOGD(AAFwkTag::INTENT, "call GetInsightIntentInfoByIntentName");
2281     auto abms = GetAbilityManager();
2282     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2283     return abms->GetInsightIntentInfoByIntentName(flag, bundleName, moduleName, intentName, info);
2284 }
2285 
RestartSelfAtomicService(sptr<IRemoteObject> callerToken)2286 ErrCode AbilityManagerClient::RestartSelfAtomicService(sptr<IRemoteObject> callerToken)
2287 {
2288     TAG_LOGI(AAFwkTag::ABILITYMGR, "call");
2289     auto abms = GetAbilityManager();
2290     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2291     return abms->RestartSelfAtomicService(callerToken);
2292 }
2293 
UpdateKioskApplicationList(const std::vector<std::string> & appList)2294 ErrCode AbilityManagerClient::UpdateKioskApplicationList(const std::vector<std::string> &appList)
2295 {
2296     TAG_LOGI(AAFwkTag::ABILITYMGR, "update KIOSK App list");
2297     auto abms = GetAbilityManager();
2298     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2299     return abms->UpdateKioskApplicationList(appList);
2300 }
2301 
EnterKioskMode(sptr<IRemoteObject> callerToken)2302 ErrCode AbilityManagerClient::EnterKioskMode(sptr<IRemoteObject> callerToken)
2303 {
2304     TAG_LOGI(AAFwkTag::ABILITYMGR, "enter Kiosk mode");
2305     auto abms = GetAbilityManager();
2306     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2307     return abms->EnterKioskMode(callerToken);
2308 }
2309 
ExitKioskMode(sptr<IRemoteObject> callerToken)2310 ErrCode AbilityManagerClient::ExitKioskMode(sptr<IRemoteObject> callerToken)
2311 {
2312     TAG_LOGI(AAFwkTag::ABILITYMGR, "exit Kiosk mode");
2313     auto abms = GetAbilityManager();
2314     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2315     return abms->ExitKioskMode(callerToken);
2316 }
2317 
GetKioskStatus(AAFwk::KioskStatus & kioskStatus)2318 ErrCode AbilityManagerClient::GetKioskStatus(AAFwk::KioskStatus &kioskStatus)
2319 {
2320     TAG_LOGI(AAFwkTag::ABILITYMGR, "get Kiosk info");
2321     auto abms = GetAbilityManager();
2322     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2323     return abms->GetKioskStatus(kioskStatus);
2324 }
2325 
RegisterSAInterceptor(sptr<AbilityRuntime::ISAInterceptor> interceptor)2326 ErrCode AbilityManagerClient::RegisterSAInterceptor(sptr<AbilityRuntime::ISAInterceptor> interceptor)
2327 {
2328     TAG_LOGD(AAFwkTag::ABILITYMGR, "call RegisterSAInterceptor");
2329     auto abms = GetAbilityManager();
2330     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2331     return abms->RegisterSAInterceptor(interceptor);
2332 }
2333 
SuspendExtensionAbility(sptr<IAbilityConnection> connect)2334 ErrCode AbilityManagerClient::SuspendExtensionAbility(sptr<IAbilityConnection> connect)
2335 {
2336     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
2337     auto abms = GetAbilityManager();
2338     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2339     TAG_LOGI(AAFwkTag::SERVICE_EXT, "SuspendExtensionAbility call");
2340     return abms->SuspendExtensionAbility(connect);
2341 }
2342 
ResumeExtensionAbility(sptr<IAbilityConnection> connect)2343 ErrCode AbilityManagerClient::ResumeExtensionAbility(sptr<IAbilityConnection> connect)
2344 {
2345     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
2346     auto abms = GetAbilityManager();
2347     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2348     TAG_LOGI(AAFwkTag::SERVICE_EXT, "ResumeExtensionAbility call");
2349     return abms->ResumeExtensionAbility(connect);
2350 }
2351 
SetOnNewWantSkipScenarios(sptr<IRemoteObject> callerToken,int32_t scenarios)2352 ErrCode AbilityManagerClient::SetOnNewWantSkipScenarios(sptr<IRemoteObject> callerToken, int32_t scenarios)
2353 {
2354     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
2355     auto abms = GetAbilityManager();
2356     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2357     TAG_LOGI(AAFwkTag::ABILITYMGR, "scenarios:%{public}d", scenarios);
2358     return abms->SetOnNewWantSkipScenarios(callerToken, scenarios);
2359 }
2360 
NotifyStartupExceptionBySCB(int32_t requestId)2361 ErrCode AbilityManagerClient::NotifyStartupExceptionBySCB(int32_t requestId)
2362 {
2363     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
2364     auto abms = GetAbilityManager();
2365     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2366     TAG_LOGI(AAFwkTag::ABILITYMGR, "requestId:%{public}d", requestId);
2367     return abms->NotifyStartupExceptionBySCB(requestId);
2368 }
2369 
PreloadApplication(const std::string & bundleName,int32_t userId,int32_t appIndex)2370 ErrCode AbilityManagerClient::PreloadApplication(const std::string &bundleName, int32_t userId, int32_t appIndex)
2371 {
2372     HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
2373     auto abms = GetAbilityManager();
2374     CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
2375     TAG_LOGI(AAFwkTag::SERVICE_EXT, "PreloadApplication call");
2376     return abms->PreloadApplication(bundleName, userId, appIndex);
2377 }
2378 } // namespace AAFwk
2379 } // namespace OHOS
2380