From 18a45f4e0a315177cf98d2685d8d6723c8e3444c Mon Sep 17 00:00:00 2001 From: fanchenxuan Date: Wed, 23 Mar 2022 17:48:20 +0800 Subject: [PATCH] permissionState Signed-off-by: fanchenxuan --- .../GrantAbility/common/components/dialog.ets | 24 +++++++------------ .../GrantAbility/common/utils/constant.ets | 6 +++++ 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/components/dialog.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/components/dialog.ets index e76848bc4..d8612aee6 100644 --- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/components/dialog.ets +++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/components/dialog.ets @@ -154,18 +154,12 @@ export struct privacyDialog { }) } - getgrantGroups() { - var acManager = abilityAccessCtrl.createAtManager() - var num =0 - this.reqPerms.forEach(async (permission, idx) => { - var flag = await acManager.getPermissionFlags(this.accessTokenId, permission) - if(flag == this.userFixedFlag) { + getgrantGroups(stateGroup) { + this.reqPerms.forEach((permission, idx) => { + if(stateGroup[idx] == Constants.PASS_OPER) { console.log(TAG + "permission has been fixed:" + permission) - var ret = await acManager.verifyAccessToken(this.accessTokenId, permission) - if(ret == abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) { - this.result[idx] = abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED; - } - }else { + this.result[idx] = abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED; + }else if(stateGroup[idx] == Constants.DYNAMIC_OPER) { var group = getPermissionGroup(permission) if(!group) { console.log(TAG + "permission not find:" + permission) @@ -176,11 +170,8 @@ export struct privacyDialog { } } } - num ++ - if(num == this.reqPerms.length) { - this.initStatus = Constants.INIT_NEED_TO_VERIFY - } }) + this.initStatus = Constants.INIT_NEED_TO_VERIFY } answer(ret, reqPerms) { @@ -222,8 +213,9 @@ export struct privacyDialog { return } console.log(TAG + "request permission=" + JSON.stringify(this.reqPerms) + ", tokenId = " + this.accessTokenId) + console.log(TAG + "permission state=" + JSON.stringify(want.parameters['ohos.user.grant.permission.state'])); this.result = new Array(this.reqPerms.length).fill(-1); - this.getgrantGroups(); + this.getgrantGroups(want.parameters['ohos.user.grant.permission.state']); this.getApplicationName(want.parameters['ohos.aafwk.param.callerUid']) }) } diff --git a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/utils/constant.ets b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/utils/constant.ets index ca3480021..2042b6faa 100644 --- a/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/utils/constant.ets +++ b/frameworks/com.ohos.permissionmanager/permissionmanager/src/main/ets/GrantAbility/common/utils/constant.ets @@ -48,4 +48,10 @@ export default class Constants { static RESULT_SUCCESS = 1 static RESULT_FAILURE = 0 + + // + static SETTING_OPER = -1 + static PASS_OPER = 0 + static DYNAMIC_OPER = 1 + static INVALID_OPER = 2 } \ No newline at end of file -- Gitee