支持通过connectServiceExtension接口进行URI授权

Signed-off-by: 段嗣钊 <duansizhao@huawei.com>
Change-Id: I678ebeb293c1286b7fcad81661a3e45dfb0564a8
This commit is contained in:
段嗣钊
2024-05-06 15:52:59 +08:00
parent 79bd54deaa
commit ffe05dd32c
3 changed files with 4 additions and 3 deletions
@@ -256,7 +256,6 @@ int AbilityConnectManager::StartAbilityLocked(const AbilityRequest &abilityReque
if (!isLoadedAbility) {
TAG_LOGD(AAFwkTag::ABILITYMGR, "Target service has not been loaded.");
targetService->GrantUriPermissionForServiceExtension();
SetLastExitReason(abilityRequest, targetService);
if (IsUIExtensionAbility(targetService)) {
targetService->SetLaunchReason(LaunchReason::LAUNCHREASON_START_ABILITY);
@@ -265,7 +264,6 @@ int AbilityConnectManager::StartAbilityLocked(const AbilityRequest &abilityReque
} else if (targetService->IsAbilityState(AbilityState::ACTIVE) && !IsUIExtensionAbility(targetService)) {
// It may have been started through connect
targetService->SetWant(abilityRequest.want);
targetService->GrantUriPermissionForServiceExtension();
CommandAbility(targetService);
} else if (IsUIExtensionAbility(targetService)) {
DoForegroundUIExtension(targetService, abilityRequest);
@@ -3527,7 +3527,8 @@ int AbilityManagerService::ConnectAbilityCommon(
Want abilityWant = want;
AbilityRequest abilityRequest;
std::string uri = abilityWant.GetUri().ToString();
if (!uri.empty()) {
bool isFileUri = (abilityWant.GetUri().GetScheme() == "file");
if (!uri.empty() && !isFileUri) {
// if the want include uri, it may only has uri information. it is probably a datashare extension.
TAG_LOGD(AAFwkTag::ABILITYMGR,
"%{public}s called. uri:%{public}s, userId %{public}d", __func__, uri.c_str(), validUserId);
@@ -1606,6 +1606,7 @@ void AbilityRecord::ConnectAbility()
if (isConnected) {
TAG_LOGW(AAFwkTag::ABILITYMGR, "connect state error.");
}
GrantUriPermissionForServiceExtension();
lifecycleDeal_->ConnectAbility(GetWant());
isConnected = true;
}
@@ -1637,6 +1638,7 @@ void AbilityRecord::CommandAbility()
{
TAG_LOGD(AAFwkTag::ABILITYMGR, "startId_:%{public}d.", startId_);
CHECK_POINTER(lifecycleDeal_);
GrantUriPermissionForServiceExtension();
lifecycleDeal_->CommandAbility(GetWant(), false, startId_);
}