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 ¶m)
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