mirror of
https://gitee.com/openharmony/ability_ability_runtime
synced 2024-10-07 00:13:56 +00:00
回退 'Pull Request !7816 : RequestDialogService删除拉起UIAbility和隐式启动的能力'
This commit is contained in:
parent
157b659517
commit
d3c7cd19f8
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user