訪問控制管理
?說明: ?本模塊首批接口從API version 8開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。
導入模塊
import abilityAccessCtrl from '@ohos.abilityAccessCtrl'
abilityAccessCtrl.createAtManager
createAtManager(): AtManager
訪問控制管理:獲取訪問控制模塊對象。
系統能力: ?SystemCapability.Security.AccessToken
返回值:
類型 | 說明 |
---|---|
[AtManager] | 獲取訪問控制模塊的實例。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
AtManager
管理訪問控制模塊的實例。
verifyAccessToken
verifyAccessToken(tokenID: number, permissionName: string): Promise
校驗應用是否授予權限,使用Promise方式異步返回結果。
系統能力: ?SystemCapability.Security.AccessToken
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
tokenID | number | 是 | 要校驗的目標應用的身份標識。 |
permissionName | string | 是 | 需要校驗的權限名稱。 |
返回值:
類型 | 說明 |
---|---|
Promise | Promise實例,用于獲取異步返回的授權狀態結果。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let promise = AtManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
promise.then(data => {console.log(`promise: data->${JSON.stringify(data)}`);
});
grantUserGrantedPermission
grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise
授予應用user grant權限,使用Promise方式異步返回結果。
需要權限: ?ohos.permission.GRANT_SENSITIVE_PERMISSIONS
系統能力: ?SystemCapability.Security.AccessToken
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
tokenID | number | 是 | 目標應用的身份標識。 |
permissionName | string | 是 | 被授予的權限名稱。 |
permissionFlag | number | 是 | 授權選項,1表示下次仍需彈窗,2表示允許、禁止后不再提醒,3表示系統授權不允許更改。 |
返回值:
類型 | 說明 |
---|---|
Promise | Promise實例,用于獲取異步返回的授權操作結果。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let permissionFlag = 1;
let promise = AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS",permissionFlag);
promise.then(data => {console.log(`promise: data->${JSON.stringify(data)}`);
});
grantUserGrantedPermission
grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback): void
授予應用user grant權限,使用callback回調異步返回結果。
需要權限: ?ohos.permission.GRANT_SENSITIVE_PERMISSIONS
系統能力: ?SystemCapability.Security.AccessToken
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
tokenID | number | 是 | 目標應用的身份標識。 |
permissionName | string | 是 | 被授予的權限名稱。 |
permissionFlag | number | 是 | 授權選項,1表示下次仍需彈窗,2表示允許、禁止后不再提醒,3表示系統授權不允許更改。 |
callback | AsyncCallback | 是 | 檢查授予應用user grant權限的操作結果同步的回調。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let permissionFlag = 1;
AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS",permissionFlag, data => {console.log(`callback: data->${JSON.stringify(data)}`);
});
revokeUserGrantedPermission
revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise
撤銷應用user grant權限,使用Promise方式異步返回結果。
需要權限: ?ohos.permission.REVOKE_SENSITIVE_PERMISSIONS
系統能力: ?SystemCapability.Security.AccessToken
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
tokenID | number | 是 | 目標應用的身份標識。 |
permissionName | string | 是 | 被撤銷的權限名稱。 |
permissionFlag | number | 是 | 授權選項,1表示下次仍需彈窗,2表示允許、禁止后不再提醒,3表示系統授權不允許更改。 |
返回值:
類型 | 說明 |
---|---|
Promise | Promise實例,用于獲取異步返回的授權操作結果。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let permissionFlag = 1;
let promise = AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag);
promise.then(data => {console.log(`promise: data->${JSON.stringify(data)}`);
});
revokeUserGrantedPermission
revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback): void
撤銷應用user grant權限,使用callback回調異步返回結果。
需要權限: ?ohos.permission.REVOKE_SENSITIVE_PERMISSIONS
系統能力: ?SystemCapability.Security.AccessToken
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
tokenID | number | 是 | 目標應用的身份標識。 |
permissionName | string | 是 | 被撤銷的權限名稱。 |
permissionFlag | number | 是 | 授權選項,1表示下次仍需彈窗,2表示允許、禁止后不再提醒,3表示系統授權不允許更改。 |
callback | AsyncCallback | 是 | 檢查撤銷應用user grant權限的操作結果同步的回調。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let permissionFlag = 1;
AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS",permissionFlag, data => {console.log(`callback: data->${JSON.stringify(data)}`);
});
getPermissionFlags
getPermissionFlags(tokenID: number, permissionName: string): Promise
獲取指定應用的指定權限的flag,使用Promise方式異步返回結果。
需要權限: ?ohos.permission.GET_SENSITIVE_PERMISSIONS or GRANT_SENSITIVE_PERMISSIONS or REVOKE_SENSITIVE_PERMISSIONS
系統能力: ?SystemCapability.Security.AccessToken
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
tokenID | number | 是 | 目標應用的身份標識。 |
permissionName | string | 是 | 查詢的權限名稱。 |
返回值:
類型 | 說明 |
---|---|
Promise | Promise實例,用于獲取異步返回的查詢結果。 |
示例:
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0;
let promise = AtManager.getPermissionFlags(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
promise.then(data => {console.log(`promise: data->${JSON.stringify(data)}`);
});
GrantStatus
表示授權狀態的枚舉。
系統能力: ?以下各項對應的系統能力均為SystemCapability.Security.AccessToken
名稱 | 默認值 | 描述 |
---|---|---|
PERMISSION_DENIED | -1 | 表示未授權。 |
PERMISSION_GRANTED | 0 | 表示已授權。 |