W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
程序訪問控制提供程序的權(quán)限管理能力,包括鑒權(quán)、授權(quán)和取消授權(quán)等。
本模塊首批接口從API version 8開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
createAtManager(): AtManager
訪問控制管理:獲取訪問控制模塊對象。
系統(tǒng)能力: SystemCapability.Security.AccessToken
返回值:
類型 | 說明 |
---|---|
獲取訪問控制模塊的實(shí)例。 |
示例:
- let atManager = abilityAccessCtrl.createAtManager();
checkAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus>
校驗(yàn)應(yīng)用是否授予權(quán)限。使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.Security.AccessToken
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
tokenID | number | 是 | 要校驗(yàn)的目標(biāo)應(yīng)用的身份標(biāo)識??赏ㄟ^應(yīng)用的ApplicationInfo獲得。 |
permissionName | Permissions | 是 | 需要校驗(yàn)的權(quán)限名稱,合法的權(quán)限名取值可在系統(tǒng)權(quán)限定義列表中查詢。 |
返回值:
類型 | 說明 |
---|---|
Promise<GrantStatus> | Promise對象。返回授權(quán)狀態(tài)結(jié)果。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見程序訪問控制錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
12100001 | The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256. |
示例:
- import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
- let atManager = abilityAccessCtrl.createAtManager();
- let tokenID = 0; // 系統(tǒng)應(yīng)用可以通過bundleManager.getApplicationInfo獲取,普通應(yīng)用可以通過bundleManager.getBundleInfoForSelf獲取
- try {
- atManager.checkAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS").then((data) => {
- console.log(`checkAccessToken success, data->${JSON.stringify(data)}`);
- }).catch((err) => {
- console.log(`checkAccessToken fail, err->${JSON.stringify(err)}`);
- });
- } catch(err) {
- console.log(`catch err->${JSON.stringify(err)}`);
- }
verifyAccessTokenSync(tokenID: number, permissionName: Permissions): GrantStatus
校驗(yàn)應(yīng)用是否被授予權(quán)限,同步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Security.AccessToken
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
tokenID | number | 是 | 要校驗(yàn)應(yīng)用的身份標(biāo)識。可通過應(yīng)用的ApplicationInfo獲得。 |
permissionName | Permissions | 是 | 需要校驗(yàn)的權(quán)限名稱,合法的權(quán)限名取值可在系統(tǒng)權(quán)限定義列表中查詢。 |
返回值:
類型 | 說明 |
---|---|
枚舉實(shí)例,返回授權(quán)狀態(tài)。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見程序訪問控制錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
12100001 | The parameter is invalid. The tokenID is 0, or the string size of permissionName is larger than 256. |
示例:
- let atManager = abilityAccessCtrl.createAtManager();
- let tokenID = 0; // 系統(tǒng)應(yīng)用可以通過bundleManager.getApplicationInfo獲取,普通應(yīng)用可以通過bundleManager.getBundleInfoForSelf獲取
- let data = atManager.verifyAccessTokenSync(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
- console.log(`data->${JSON.stringify(data)}`);
verifyAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus>
校驗(yàn)應(yīng)用是否授予權(quán)限。使用Promise異步回調(diào)。
建議使用checkAccessToken替代。
系統(tǒng)能力: SystemCapability.Security.AccessToken
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
tokenID | number | 是 | 要校驗(yàn)的目標(biāo)應(yīng)用的身份標(biāo)識??赏ㄟ^應(yīng)用的ApplicationInfo獲得。 |
permissionName | Permissions | 是 | 需要校驗(yàn)的權(quán)限名稱,合法的權(quán)限名取值可在系統(tǒng)權(quán)限定義列表中查詢。 |
返回值:
類型 | 說明 |
---|---|
Promise<GrantStatus> | Promise對象。返回授權(quán)狀態(tài)結(jié)果。 |
示例:
- import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
- let atManager = abilityAccessCtrl.createAtManager();
- let tokenID = 0; // 系統(tǒng)應(yīng)用可以通過bundleManager.getApplicationInfo獲取,普通應(yīng)用可以通過bundleManager.getBundleInfoForSelf獲取
- let promise = atManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
- promise.then(data => {
- console.log(`promise: data->${JSON.stringify(data)}`);
- });
requestPermissionsFromUser(context: Context, permissionList: Array<Permissions>, requestCallback: AsyncCallback<PermissionRequestResult>) : void;
用于UIAbility拉起彈框請求用戶授權(quán)。使用callback異步回調(diào)。
非UIAbility不支持調(diào)用本函數(shù)。
模型約束:此接口僅可在Stage模型下使用。
系統(tǒng)能力: SystemCapability.Security.AccessToken
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
context | Context | 是 | 請求權(quán)限的UIAbility的UIAbilityContext。 |
permissionList | Array<Permissions> | 是 | 權(quán)限名列表,合法的權(quán)限名取值可在系統(tǒng)權(quán)限定義列表中查詢。 |
callback | AsyncCallback<PermissionRequestResult> | 是 | 回調(diào)函數(shù),返回接口調(diào)用是否成功的結(jié)果。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見程序訪問控制錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
12100001 | The parameter is invalid. The context is invalid when it does not belong to the application itself. |
示例:
- import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
- let atManager = abilityAccessCtrl.createAtManager();
- try {
- atManager.requestPermissionsFromUser(this.context, ["ohos.permission.CAMERA"], (err, data)=>{
- console.info("data:" + JSON.stringify(data));
- console.info("data permissions:" + data.permissions);
- console.info("data authResults:" + data.authResults);
- });
- } catch(err) {
- console.log(`catch err->${JSON.stringify(err)}`);
- }
requestPermissionsFromUser(context: Context, permissionList: Array<Permissions>) : Promise<PermissionRequestResult>;
用于UIAbility拉起彈框請求用戶授權(quán)。使用promise異步回調(diào)。
非UIAbility不支持調(diào)用本函數(shù)。
模型約束:此接口僅可在Stage模型下使用。
系統(tǒng)能力: SystemCapability.Security.AccessToken
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
context | Context | 是 | 請求權(quán)限的UIAbility的UIAbilityContext。 |
permissionList | Array<Permissions> | 是 | 需要校驗(yàn)的權(quán)限名稱,合法的權(quán)限名取值可在系統(tǒng)權(quán)限定義列表中查詢。 |
返回值:
類型 | 說明 |
---|---|
Promise<PermissionRequestResult> | 返回一個Promise,包含接口的結(jié)果。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見程序訪問控制錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
12100001 | The parameter is invalid. The context is invalid when it does not belong to the application itself. |
示例:
- import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
- let atManager = abilityAccessCtrl.createAtManager();
- try {
- atManager.requestPermissionsFromUser(this.context, ["ohos.permission.CAMERA"]).then((data) => {
- console.info("data:" + JSON.stringify(data));
- console.info("data permissions:" + data.permissions);
- console.info("data authResults:" + data.authResults);
- }).catch((err) => {
- console.info("data:" + JSON.stringify(err));
- })
- } catch(err) {
- console.log(`catch err->${JSON.stringify(err)}`);
- }
verifyAccessToken(tokenID: number, permissionName: string): Promise<GrantStatus>
校驗(yàn)應(yīng)用是否授予權(quán)限。使用Promise異步回調(diào)。
從API version 9開始不再維護(hù),建議使用checkAccessToken替代。
系統(tǒng)能力: SystemCapability.Security.AccessToken
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
tokenID | number | 是 | 要校驗(yàn)的目標(biāo)應(yīng)用的身份標(biāo)識??赏ㄟ^應(yīng)用的ApplicationInfo獲得。 |
permissionName | string | 是 | 需要校驗(yàn)的權(quán)限名稱。 |
返回值:
類型 | 說明 |
---|---|
Promise<GrantStatus> | Promise對象。返回授權(quán)狀態(tài)結(jié)果。 |
示例:
- import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
- let atManager = abilityAccessCtrl.createAtManager();
- let tokenID = 0; // 系統(tǒng)應(yīng)用可以通過bundleManager.getApplicationInfo獲取,普通應(yīng)用可以通過bundleManager.getBundleInfoForSelf獲取
- let promise = atManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
- promise.then(data => {
- console.log(`promise: data->${JSON.stringify(data)}`);
- });
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: