回退 'Pull Request !7816 : RequestDialogService删除拉起UIAbility和隐式启动的能力'

This commit is contained in:
openharmony_ci 2024-03-25 11:29:04 +00:00 committed by Gitee
parent 157b659517
commit d3c7cd19f8
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -1660,13 +1660,8 @@ int32_t AbilityManagerService::RequestDialogServiceInner(const Want &want, const
return ERR_CROSS_USER;
}
if (ImplicitStartProcessor::IsImplicitStartAction(want)) {
HILOG_ERROR("RequestDialogService does not support implicit start");
return ERR_WRONG_INTERFACE_CALL;
}
AbilityRequest abilityRequest;
result = GenerateExtensionAbilityRequest(want, abilityRequest, callerToken, validUserId);
result = GenerateAbilityRequest(want, requestCode, abilityRequest, callerToken, validUserId);
if (result != ERR_OK) {
HILOG_ERROR("Generate ability request local error when RequestDialogService.");
return result;
@ -1685,7 +1680,13 @@ int32_t AbilityManagerService::RequestDialogServiceInner(const Want &want, const
}
auto type = abilityInfo.type;
if (type == AppExecFwk::AbilityType::EXTENSION &&
if (type == AppExecFwk::AbilityType::PAGE) {
result = CheckCallAbilityPermission(abilityRequest);
if (result != ERR_OK) {
HILOG_ERROR("Check permission failed");
return result;
}
} else if (type == AppExecFwk::AbilityType::EXTENSION &&
abilityInfo.extensionAbilityType == AppExecFwk::ExtensionAbilityType::SERVICE) {
HILOG_DEBUG("Check call ability permission, name is %{public}s.", abilityInfo.name.c_str());
result = CheckCallServicePermission(abilityRequest);
@ -1707,14 +1708,36 @@ int32_t AbilityManagerService::RequestDialogServiceInner(const Want &want, const
return result;
}
auto connectManager = GetConnectManagerByUserId(validUserId);
if (!connectManager) {
HILOG_ERROR("connectManager is nullptr. userId=%{public}d", validUserId);
if (type == AppExecFwk::AbilityType::EXTENSION) {
auto connectManager = GetConnectManagerByUserId(validUserId);
if (!connectManager) {
HILOG_ERROR("connectManager is nullptr. userId=%{public}d", validUserId);
return ERR_INVALID_VALUE;
}
HILOG_DEBUG("request dialog service, start service extension,name is %{public}s.", abilityInfo.name.c_str());
ReportEventToSuspendManager(abilityInfo);
return connectManager->StartAbility(abilityRequest);
}
if (!IsAbilityControllerStart(want, abilityInfo.bundleName)) {
HILOG_ERROR("IsAbilityControllerStart failed : %{public}s.", abilityInfo.bundleName.c_str());
return ERR_WOULD_BLOCK;
}
if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
ReportEventToSuspendManager(abilityInfo);
abilityRequest.userId = oriValidUserId;
abilityRequest.want.SetParam(IS_CALL_BY_SCB, false);
return uiAbilityLifecycleManager_->NotifySCBToStartUIAbility(abilityRequest, oriValidUserId);
}
auto missionListManager = GetListManagerByUserId(oriValidUserId);
if (missionListManager == nullptr) {
HILOG_ERROR("missionListManager is nullptr. userId:%{public}d", validUserId);
return ERR_INVALID_VALUE;
}
HILOG_DEBUG("request dialog service, start service extension,name is %{public}s.", abilityInfo.name.c_str());
ReportAbilitStartInfoToRSS(abilityInfo);
ReportEventToSuspendManager(abilityInfo);
return connectManager->StartAbility(abilityRequest);
HILOG_DEBUG("RequestDialogService, start ability, name is %{public}s.", abilityInfo.name.c_str());
return missionListManager->StartAbility(abilityRequest);
}
AppExecFwk::ElementName AbilityManagerService::GetElementNameByAppId(const std::string &appId)