提交 e4213905 编写于 作者: C chennian

错误码抛异常修改

Signed-off-by:chennian<chennian1@huawei.com>
Signed-off-by: Nchennian <chennian1@huawei.com>
上级 9eca7640
...@@ -36,9 +36,9 @@ var AtManager = abilityAccessCtrl.createAtManager(); ...@@ -36,9 +36,9 @@ var AtManager = abilityAccessCtrl.createAtManager();
管理访问控制模块的实例。 管理访问控制模块的实例。
### verifyAccessToken ### checkAccessToken<sup>9+</sup>
verifyAccessToken(tokenID: number, permissionName: string): Promise&lt;GrantStatus&gt; checkAccessToken(tokenID: number, permissionName: string): Promise&lt;GrantStatus&gt;
校验应用是否授予权限,使用Promise方式异步返回结果。 校验应用是否授予权限,使用Promise方式异步返回结果。
...@@ -55,17 +55,24 @@ verifyAccessToken(tokenID: number, permissionName: string): Promise&lt;GrantStat ...@@ -55,17 +55,24 @@ verifyAccessToken(tokenID: number, permissionName: string): Promise&lt;GrantStat
| 类型 | 说明 | | 类型 | 说明 |
| :------------ | :---------------------------------- | | :------------ | :---------------------------------- |
| Promise&lt;GrantStatus&gt; | Promise实例,用于获取异步返回的授权状态结果。 | | Promise&lt;GrantStatus&gt; | Promise对象。返回授权状态结果。 |
**示例:** **示例:**
```js ```js
var AtManager = abilityAccessCtrl.createAtManager(); import privacyManager from '@ohos.abilityAccessCtrl';
let tokenID = 0;
let promise = AtManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS"); let AtManager = abilityAccessCtrl.createAtManager();
promise.then(data => { let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
console.log(`promise: data->${JSON.stringify(data)}`); 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<sup>9+</sup> ### verifyAccessTokenSync<sup>9+</sup>
...@@ -100,7 +107,7 @@ console.log(`data->${JSON.stringify(data)}`); ...@@ -100,7 +107,7 @@ console.log(`data->${JSON.stringify(data)}`);
### grantUserGrantedPermission ### grantUserGrantedPermission
grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise&lt;number&gt; grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise&lt;void&gt;
授予应用user grant权限,使用Promise方式异步返回结果。 授予应用user grant权限,使用Promise方式异步返回结果。
...@@ -114,7 +121,7 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl ...@@ -114,7 +121,7 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------- | ---- | ------------------------------------------------------------ | | --------- | ------------------- | ---- | ------------------------------------------------------------ |
| tokenID | number | 是 | 目标应用的身份标识。 | | tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得 |
| permissionName | string | 是 | 被授予的权限名称。 | | permissionName | string | 是 | 被授予的权限名称。 |
| permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
...@@ -122,23 +129,30 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl ...@@ -122,23 +129,30 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl
| 类型 | 说明 | | 类型 | 说明 |
| :------------ | :---------------------------------- | | :------------ | :---------------------------------- |
| Promise&lt;number&gt; | Promise实例,用于获取异步返回的授权操作结果。 | | Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
**示例:** **示例:**
```js ```js
var AtManager = abilityAccessCtrl.createAtManager(); import privacyManager from '@ohos.abilityAccessCtrl';
let tokenID = 0;
let AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
let permissionFlag = 1; let permissionFlag = 1;
let promise = AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag); try {
promise.then(data => { AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag).then(() => {
console.log(`promise: data->${JSON.stringify(data)}`); console.log('grantUserGrantedPermission success');
}); }).catch((err) => {
console.log(`grantUserGrantedPermission fail, err->${JSON.stringify(err)}`);
});
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
### grantUserGrantedPermission ### grantUserGrantedPermission
grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback&lt;number&gt;): void grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback&lt;void&gt;): void
授予应用user grant权限,使用callback回调异步返回结果。 授予应用user grant权限,使用callback回调异步返回结果。
...@@ -152,29 +166,35 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl ...@@ -152,29 +166,35 @@ grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFl
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------- | ---- | ------------------------------------------------------------ | | --------- | ------------------- | ---- | ------------------------------------------------------------ |
| tokenID | number | 是 | 目标应用的身份标识。 | | tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得 |
| permissionName | string | 是 | 被授予的权限名称。 | | permissionName | string | 是 | 被授予的权限名称。 |
| permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 检查授予应用user grant权限的操作结果同步的回调。 | | callback | AsyncCallback&lt;void&gt; | 是 | 检查授予应用user grant权限的操作结果同步的回调。 |
**示例:** **示例:**
```js ```js
import privacyManager from '@ohos.abilityAccessCtrl';
var AtManager = abilityAccessCtrl.createAtManager(); var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
let permissionFlag = 1; let permissionFlag = 1;
AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag, (err, data) => { try {
AtManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag, (data, err) => {
if (err) { if (err) {
console.log(`callback: err->${JSON.stringify(err)}`); console.log(`grantUserGrantedPermission fail, err->${JSON.stringify(err)}`);
} else { } else {
console.log(`callback: data->${JSON.stringify(data)}`); console.log('grantUserGrantedPermission success');
} }
}); });
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
### revokeUserGrantedPermission ### revokeUserGrantedPermission
revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise&lt;number&gt; revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise&lt;void&gt;
撤销应用user grant权限,使用Promise方式异步返回结果。 撤销应用user grant权限,使用Promise方式异步返回结果。
...@@ -188,7 +208,7 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF ...@@ -188,7 +208,7 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------- | ---- | ------------------------------------------------------------ | | --------- | ------------------- | ---- | ------------------------------------------------------------ |
| tokenID | number | 是 | 目标应用的身份标识。 | | tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得 |
| permissionName | string | 是 | 被撤销的权限名称。 | | permissionName | string | 是 | 被撤销的权限名称。 |
| permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
...@@ -196,23 +216,30 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF ...@@ -196,23 +216,30 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF
| 类型 | 说明 | | 类型 | 说明 |
| :------------ | :---------------------------------- | | :------------ | :---------------------------------- |
| Promise&lt;number&gt; | Promise实例,用于获取异步返回的授权操作结果。 | | Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
**示例:** **示例:**
```js ```js
var AtManager = abilityAccessCtrl.createAtManager(); import privacyManager from '@ohos.abilityAccessCtrl';
let tokenID = 0;
let AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
let permissionFlag = 1; let permissionFlag = 1;
let promise = AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag); try {
promise.then(data => { AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag).then(() => {
console.log(`promise: data->${JSON.stringify(data)}`); console.log('revokeUserGrantedPermission success');
}); }).catch((err) => {
console.log(`revokeUserGrantedPermission fail, err->${JSON.stringify(err)}`);
});
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
### revokeUserGrantedPermission ### revokeUserGrantedPermission
revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback&lt;number&gt;): void revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback&lt;void&gt;): void
撤销应用user grant权限,使用callback回调异步返回结果。 撤销应用user grant权限,使用callback回调异步返回结果。
...@@ -226,24 +253,30 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF ...@@ -226,24 +253,30 @@ revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionF
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------- | ---- | ------------------------------------------------------------ | | --------- | ------------------- | ---- | ------------------------------------------------------------ |
| tokenID | number | 是 | 目标应用的身份标识。 | | tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得 |
| permissionName | string | 是 | 被撤销的权限名称。 | | permissionName | string | 是 | 被撤销的权限名称。 |
| permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 检查撤销应用user grant权限的操作结果同步的回调。 | | callback | AsyncCallback&lt;void&gt; | 是 | 检查撤销应用user grant权限的操作结果同步的回调。 |
**示例:** **示例:**
```js ```js
import privacyManager from '@ohos.abilityAccessCtrl';
var AtManager = abilityAccessCtrl.createAtManager(); var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
let permissionFlag = 1; let permissionFlag = 1;
AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag, (err, data) => { try {
AtManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag, (data, err) => {
if (err) { if (err) {
console.log(`callback: err->${JSON.stringify(err)}`); console.log(`revokeUserGrantedPermission fail, err->${JSON.stringify(err)}`);
} else { } else {
console.log(`callback: data->${JSON.stringify(data)}`); console.log('revokeUserGrantedPermission success');
} }
}); });
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
### getPermissionFlags ### getPermissionFlags
...@@ -262,24 +295,32 @@ getPermissionFlags(tokenID: number, permissionName: string): Promise&lt;number&g ...@@ -262,24 +295,32 @@ getPermissionFlags(tokenID: number, permissionName: string): Promise&lt;number&g
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------- | ---- | ------------------------------------------------------------ | | --------- | ------------------- | ---- | ------------------------------------------------------------ |
| tokenID | number | 是 | 目标应用的身份标识。 | | tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得 |
| permissionName | string | 是 | 查询的权限名称。 | | permissionName | string | 是 | 查询的权限名称。 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| :------------ | :---------------------------------- | | :------------ | :---------------------------------- |
| Promise&lt;number&gt; | Promise实例,用于获取异步返回的查询结果。 | | Promise&lt;number&gt; | Promise对象。返回查询结果。 |
**示例:** **示例:**
```js ```js
var AtManager = abilityAccessCtrl.createAtManager(); import privacyManager from '@ohos.abilityAccessCtrl';
let tokenID = 0;
let promise = AtManager.getPermissionFlags(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS"); let AtManager = abilityAccessCtrl.createAtManager();
promise.then(data => { let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
console.log(`promise: data->${JSON.stringify(data)}`); let permissionFlag = 1;
}); try {
AtManager.getPermissionFlags(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS").then((data) => {
console.log(`getPermissionFlags success, data->${JSON.stringify(data)}`);
}).catch((err) = > {
console.log(`getPermissionFlags fail, err->${JSON.stringify(err)}`);
});
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
### getVersion<sup>9+</sup> ### getVersion<sup>9+</sup>
...@@ -296,7 +337,7 @@ getVersion(): Promise&lt;number&gt; ...@@ -296,7 +337,7 @@ getVersion(): Promise&lt;number&gt;
| 类型 | 说明 | | 类型 | 说明 |
| :------------ | :---------------------------------- | | :------------ | :---------------------------------- |
| Promise&lt;number&gt; | Promise实例,用于获取异步返回的版本号。 | | Promise&lt;number&gt; | Promise对象。返回查询到的版本号。 |
**示例:** **示例:**
...@@ -334,18 +375,15 @@ on(type: 'permissionStateChange', tokenIDList: Array&lt;number&gt;, permissionNa ...@@ -334,18 +375,15 @@ on(type: 'permissionStateChange', tokenIDList: Array&lt;number&gt;, permissionNa
```js ```js
import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
function OnPermissionStateChanged(data){
console.debug("receive permission state change, data:" + JSON.stringify(data));
}
let atManager = abilityAccessCtrl.createAtManager(); let atManager = abilityAccessCtrl.createAtManager();
let type: 'permissionStateChange' = 'permissionStateChange';
let tokenIDList: Array<number> = []; let tokenIDList: Array<number> = [];
let permissionNameList: Array<string> = []; let permissionNameList: Array<string> = [];
try{ try {
atManager.on(type, tokenIDList, permissionNameList, OnPermissionStateChanged); atManager.on('permissionStateChange', tokenIDList, permissionNameList, (data) => {
} console.debug("receive permission state change, data:" + JSON.stringify(data));
catch(err){ });
console.error("on err:" + JSON.stringify(err)); } catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
} }
``` ```
...@@ -376,17 +414,51 @@ off(type: 'permissionStateChange', tokenIDList: Array&lt;number&gt;, permissionN ...@@ -376,17 +414,51 @@ off(type: 'permissionStateChange', tokenIDList: Array&lt;number&gt;, permissionN
import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
let atManager = abilityAccessCtrl.createAtManager(); let atManager = abilityAccessCtrl.createAtManager();
let type: 'permissionStateChange' = 'permissionStateChange';
let tokenIDList: Array<number> = []; let tokenIDList: Array<number> = [];
let permissionNameList: Array<string> = []; let permissionNameList: Array<string> = [];
try{ try {
atManager.off(type, tokenIDList, permissionNameList); atManager.off('permissionStateChange', tokenIDList, permissionNameList);
} } catch(err) {
catch(err){ console.log(`catch err->${JSON.stringify(err)}`);
console.error("off err:" + JSON.stringify(err));
} }
``` ```
### verifyAccessToken<sup>(deprecated)</sup>
verifyAccessToken(tokenID: number, permissionName: string): Promise&lt;GrantStatus&gt;
校验应用是否授予权限,使用Promise方式异步返回结果。
> **说明:** 从API version 9开始不再维护,建议使用[checkAccessToken](#checkaccesstoken9)替代。
**系统能力:** SystemCapability.Security.AccessToken
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | ------------------------------------------ |
| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得 |
| permissionName | string | 是 | 需要校验的权限名称。 |
**返回值:**
| 类型 | 说明 |
| :------------ | :---------------------------------- |
| Promise&lt;GrantStatus&gt; | Promise对象。返回授权状态结果。 |
**示例:**
```js
import privacyManager from '@ohos.abilityAccessCtrl';
var AtManager = abilityAccessCtrl.createAtManager();
let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
let promise = AtManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS");
promise.then(data => {
console.log(`promise: data->${JSON.stringify(data)}`);
});
```
### GrantStatus ### GrantStatus
表示授权状态的枚举。 表示授权状态的枚举。
......
...@@ -15,7 +15,7 @@ import privacyManager from '@ohos.privacyManager'; ...@@ -15,7 +15,7 @@ import privacyManager from '@ohos.privacyManager';
## privacyManager.addPermissionUsedRecord ## privacyManager.addPermissionUsedRecord
addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number): Promise&lt;number&gt; addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number): Promise&lt;void&gt;
受应用权限保护的应用在被其他服务、应用调用时,可以使用该接口增加一条权限使用记录。使用Promise异步回调。 受应用权限保护的应用在被其他服务、应用调用时,可以使用该接口增加一条权限使用记录。使用Promise异步回调。
权限使用记录包括:调用方的应用身份标识、使用的应用权限名称,和其访问本应用成功、失败的次数。 权限使用记录包括:调用方的应用身份标识、使用的应用权限名称,和其访问本应用成功、失败的次数。
...@@ -28,7 +28,7 @@ addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: n ...@@ -28,7 +28,7 @@ addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: n
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | ------------------------------------------ | | -------- | ------------------- | ---- | ------------------------------------------ |
| tokenID | number | 是 | 调用方的应用身份标识。 | | tokenID | number | 是 | 调用方的应用身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
| permissionName | string | 是 | 应用权限名称。 | | permissionName | string | 是 | 应用权限名称。 |
| successCount | number | 是 | 访问成功的次数。 | | successCount | number | 是 | 访问成功的次数。 |
| failCount | number | 是 | 访问失败的次数。 | | failCount | number | 是 | 访问失败的次数。 |
...@@ -37,27 +37,28 @@ addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: n ...@@ -37,27 +37,28 @@ addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: n
| 类型 | 说明 | | 类型 | 说明 |
| :------------ | :---------------------------------- | | :------------ | :---------------------------------- |
| Promise&lt;number&gt; | Promise对象。返回`0`表示成功增加记录,返回`-1`表示失败。 | | Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
**示例:** **示例:**
```js ```js
import bundle from '@ohos.bundle';
import privacyManager from '@ohos.privacyManager'; import privacyManager from '@ohos.privacyManager';
let bundleName = "com.ohos.permissionmanager"; // change to your bundle name let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
bundle.getApplicationInfo(bundleName, 16).then(appInfo => { try {
var tokenID = appInfo.accessTokenId; // 可以通过getApplicationInfo获取accessTokenId privacyManager.addPermissionUsedRecord(tokenID, "ohos.permission.PERMISSION_USED_STATS", 1, 0).then(() => {
privacyManager.addPermissionUsedRecord(tokenID, "ohos.permission.PERMISSION_USED_STATS", 1, 0).then(data => { console.log('addPermissionUsedRecord success');
console.log(`promise: data->${JSON.stringify(data)}`); }).catch((err) => {
console.log(`addPermissionUsedRecord fail, err->${JSON.stringify(err)}`);
}); });
}) } catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
## privacyManager.addPermissionUsedRecord ## privacyManager.addPermissionUsedRecord
addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number, callback: AsyncCallback&lt;number&gt;): void addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number, callback: AsyncCallback&lt;void&gt;): void
受应用权限保护的应用在被其他服务、应用调用时,可以使用该接口增加一条权限使用记录。使用callback异步回调。 受应用权限保护的应用在被其他服务、应用调用时,可以使用该接口增加一条权限使用记录。使用callback异步回调。
权限使用记录包括:调用方的应用身份标识、使用的应用权限名称,和其访问本应用成功、失败的次数。 权限使用记录包括:调用方的应用身份标识、使用的应用权限名称,和其访问本应用成功、失败的次数。
...@@ -70,26 +71,29 @@ addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: n ...@@ -70,26 +71,29 @@ addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: n
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | ------------------------------------------ | | -------- | ------------------- | ---- | ------------------------------------------ |
| tokenID | number | 是 | 调用方的应用身份标识。 | | tokenID | number | 是 | 调用方的应用身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
| permissionName | string | 是 | 应用权限名称。 | | permissionName | string | 是 | 应用权限名称。 |
| successCount | number | 是 | 访问成功的次数。 | | successCount | number | 是 | 访问成功的次数。 |
| failCount | number | 是 | 访问失败的次数。 | | failCount | number | 是 | 访问失败的次数。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 回调函数。返回`0`表示成功增加记录,返回`-1`表示失败。 | | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
**示例:** **示例:**
```js ```js
import bundle from '@ohos.bundle';
import privacyManager from '@ohos.privacyManager'; import privacyManager from '@ohos.privacyManager';
let bundleName = "com.ohos.permissionmanager"; // change to your bundle name let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
bundle.getApplicationInfo(bundleName, 16).then(appInfo => { try {
var tokenID = appInfo.accessTokenId; // 可以通过getApplicationInfo获取accessTokenId privacyManager.addPermissionUsedRecord(tokenID, "ohos.permission.PERMISSION_USED_STATS", 1, 0, (data, err) => {
privacyManager.addPermissionUsedRecord(tokenID, "ohos.permission.PERMISSION_USED_STATS", 1, 0, (err, data) => { if (err) {
console.log(`callback: data->${JSON.stringify(data)}`); console.log(`addPermissionUsedRecord fail, err->${JSON.stringify(err)}`);
} else {
console.log('addPermissionUsedRecord success');
}
}); });
}) } catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
## privacyManager.getPermissionUsedRecords ## privacyManager.getPermissionUsedRecords
...@@ -117,6 +121,8 @@ getPermissionUsedRecords(request: PermissionUsedRequest): Promise&lt;PermissionU ...@@ -117,6 +121,8 @@ getPermissionUsedRecords(request: PermissionUsedRequest): Promise&lt;PermissionU
**示例:** **示例:**
```js ```js
import privacyManager from '@ohos.privacyManager';
let request = { let request = {
"tokenId": 1, "tokenId": 1,
"isRemote": false, "isRemote": false,
...@@ -127,9 +133,15 @@ let request = { ...@@ -127,9 +133,15 @@ let request = {
"endTime": 1, "endTime": 1,
"flag":privacyManager.PermissionUsageFlag.FLAG_PERMISSION_USAGE_DETAIL, "flag":privacyManager.PermissionUsageFlag.FLAG_PERMISSION_USAGE_DETAIL,
}; };
privacyManager.getPermissionUsedRecords(request).then(data => { try {
console.log(`promise: data->${JSON.stringify(data)}`); privacyManager.getPermissionUsedRecords(request).then((data) => {
}); console.log(`getPermissionUsedRecords success, data->${JSON.stringify(data)}`);
}).catch((err) => {
console.log(`getPermissionUsedRecords fail, err->${JSON.stringify(err)}`);
});
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
## privacyManager.getPermissionUsedRecords ## privacyManager.getPermissionUsedRecords
...@@ -152,6 +164,8 @@ getPermissionUsedRecords(request: PermissionUsedRequest, callback: AsyncCallback ...@@ -152,6 +164,8 @@ getPermissionUsedRecords(request: PermissionUsedRequest, callback: AsyncCallback
**示例:** **示例:**
```js ```js
import privacyManager from '@ohos.privacyManager';
let request = { let request = {
"tokenId": 1, "tokenId": 1,
"isRemote": false, "isRemote": false,
...@@ -162,14 +176,22 @@ let request = { ...@@ -162,14 +176,22 @@ let request = {
"endTime": 1, "endTime": 1,
"flag":privacyManager.PermissionUsageFlag.FLAG_PERMISSION_USAGE_DETAIL, "flag":privacyManager.PermissionUsageFlag.FLAG_PERMISSION_USAGE_DETAIL,
}; };
privacyManager.getPermissionUsedRecords(request, (err, data) => { try {
console.log(`promise: data->${JSON.stringify(data)}`); privacyManager.getPermissionUsedRecords(request, (err, data) => {
}); if (err) {
console.log(`getPermissionUsedRecords fail, err->${JSON.stringify(err)}`);
} else {
console.log(`getPermissionUsedRecords success, data->${JSON.stringify(data)}`);
}
});
} catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
## privacyManager.startUsingPermission<sup>9+</sup> ## privacyManager.startUsingPermission
startUsingPermission(tokenID: number, permissionName: string): Promise&lt;number&gt; startUsingPermission(tokenID: number, permissionName: string): Promise&lt;void&gt;
应用开始使用某项权限,可监听应用在前后台使用权限,并将使用权限的记录落盘,由系统服务调用。 应用开始使用某项权限,可监听应用在前后台使用权限,并将使用权限的记录落盘,由系统服务调用。
...@@ -181,37 +203,35 @@ startUsingPermission(tokenID: number, permissionName: string): Promise&lt;number ...@@ -181,37 +203,35 @@ startUsingPermission(tokenID: number, permissionName: string): Promise&lt;number
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------------- | ------ | ---- | ------------------------------------ | | -------------- | ------ | ---- | ------------------------------------ |
| tokenID | number | 是 | 调用方的应用身份标识,获取方法参照示例。 | | tokenID | number | 是 | 调用方的应用身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
| permissionName | string | 是 | 需要使用的权限名。 | | permissionName | string | 是 | 需要使用的权限名。 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| ------------- | --------------------------------------- | | ------------- | --------------------------------------- |
| Promise&lt;number&gt; | Promise对象。返回开始使用权限的结果。| | Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。|
**示例:** **示例:**
```js ```js
import bundle from '@ohos.bundle';
import privacyManager from '@ohos.privacyManager'; import privacyManager from '@ohos.privacyManager';
let bundleName = "com.ohos.permissionmanager"; // change to your bundle name let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
bundle.getApplicationInfo(bundleName, 16).then(appInfo => { try {
let tokenID = appInfo.accessTokenId; privacyManager.startUsingPermission(tokenID, "ohos.permission.PERMISSION_USED_STATS").then(() => {
let permissionName = "ohos.permission.CAMERA"; console.log('startUsingPermission success');
privacyManager.startUsingPermission(tokenID, permissionName).then(data => { }).catch((err) => {
console.log(`promise: data->${JSON.stringify(data)}`); console.log(`startUsingPermission fail, err->${JSON.stringify(err)}`);
}).catch(err => {
console.log(`Error: err->${JSON.stringify(err)}`);
}); });
}) } catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
## privacyManager.startUsingPermission<sup>9+</sup> ## privacyManager.startUsingPermission
startUsingPermission(tokenID: number, permissionName: string, callback: AsyncCallback&lt;number&gt;): void startUsingPermission(tokenID: number, permissionName: string, callback: AsyncCallback&lt;void&gt;): void
应用开始使用某项权限,可监听应用在前后台使用权限,并将使用权限的记录落盘,由系统服务调用。 应用开始使用某项权限,可监听应用在前后台使用权限,并将使用权限的记录落盘,由系统服务调用。
...@@ -223,34 +243,32 @@ startUsingPermission(tokenID: number, permissionName: string, callback: AsyncCal ...@@ -223,34 +243,32 @@ startUsingPermission(tokenID: number, permissionName: string, callback: AsyncCal
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------------- | --------------------- | ---- | ------------------------------------ | | -------------- | --------------------- | ---- | ------------------------------------ |
| tokenID | number | 是 | 调用方的应用身份标识,获取方法参照示例。 | | tokenID | number | 是 | 调用方的应用身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
| permissionName | string | 是 | 需要使用的权限名。 | | permissionName | string | 是 | 需要使用的权限名。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 异步回调,返回开始使用权限的结果。 | | callback | AsyncCallback&lt;void&gt; | 是 | 异步回调,返回开始使用权限的结果。 |
**示例:** **示例:**
```js ```js
import bundle from '@ohos.bundle';
import privacyManager from '@ohos.privacyManager'; import privacyManager from '@ohos.privacyManager';
let bundleName = "com.ohos.permissionmanager"; // change to your bundle name let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
bundle.getApplicationInfo(bundleName, 16).then(appInfo => { try {
let tokenID = appInfo.accessTokenId; privacyManager.startUsingPermission(tokenID, "ohos.permission.PERMISSION_USED_STATS", (data, err) => {
let permissionName = "ohos.permission.CAMERA";
privacyManager.startUsingPermission(tokenID, permissionName, (err, data)=> {
if (err) { if (err) {
console.log(`Error: err->${JSON.stringify(err)}`); console.log(`startUsingPermission fail, err->${JSON.stringify(err)}`);
} else {S } else {
console.log(`promise: data->${JSON.stringify(data)}`); console.log('startUsingPermission success');
} }
}); });
}) } catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
## privacyManager.stopUsingPermission<sup>9+</sup> ## privacyManager.stopUsingPermission
stopUsingPermission(tokenID: number, permissionName: string): Promise&lt;number&gt; stopUsingPermission(tokenID: number, permissionName: string): Promise&lt;void&gt;
应用停止使用某项权限,与Start对应,由系统服务调用。 应用停止使用某项权限,与Start对应,由系统服务调用。
...@@ -262,37 +280,35 @@ stopUsingPermission(tokenID: number, permissionName: string): Promise&lt;number& ...@@ -262,37 +280,35 @@ stopUsingPermission(tokenID: number, permissionName: string): Promise&lt;number&
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------------- | ------ | ---- | ------------------------------------ | | -------------- | ------ | ---- | ------------------------------------ |
| tokenID | number | 是 | 调用方的应用身份标识,获取方法参照示例。 | | tokenID | number | 是 | 调用方的应用身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
| permissionName | string | 是 | 需要使用的权限名。 | | permissionName | string | 是 | 需要使用的权限名。 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| ------------- | --------------------------------------- | | ------------- | --------------------------------------- |
| Promise&lt;number&gt; | Promise对象。返回停止使用权限的结果。| | Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。|
**示例:** **示例:**
```js ```js
import bundle from '@ohos.bundle';
import privacyManager from '@ohos.privacyManager'; import privacyManager from '@ohos.privacyManager';
let bundleName = "com.ohos.permissionmanager"; // change to your bundle name let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
bundle.getApplicationInfo(bundleName, 16).then(appInfo => { try {
let tokenID = appInfo.accessTokenId; privacyManager.stopUsingPermission(tokenID, "ohos.permission.PERMISSION_USED_STATS").then(() => {
let permissionName = "ohos.permission.CAMERA"; console.log('stopUsingPermission success');
privacyManager.stopUsingPermission(tokenID, permissionName).then(data => { }).catch((err) => {
console.log(`promise: data->${JSON.stringify(data)}`); console.log(`stopUsingPermission fail, err->${JSON.stringify(err)}`);
}).catch(err => {
console.log(`Error: err->${JSON.stringify(err)}`);
}); });
}) } catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
## privacyManager.stopUsingPermission<sup>9+</sup> ## privacyManager.stopUsingPermission
stopUsingPermission(tokenID: number, permissionName: string, callback: AsyncCallback&lt;number&gt;): void stopUsingPermission(tokenID: number, permissionName: string, callback: AsyncCallback&lt;void&gt;): void
应用停止使用某项权限,与Start对应,由系统服务调用。 应用停止使用某项权限,与Start对应,由系统服务调用。
...@@ -304,32 +320,30 @@ stopUsingPermission(tokenID: number, permissionName: string, callback: AsyncCall ...@@ -304,32 +320,30 @@ stopUsingPermission(tokenID: number, permissionName: string, callback: AsyncCall
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------------- | --------------------- | ---- | ------------------------------------ | | -------------- | --------------------- | ---- | ------------------------------------ |
| tokenID | number | 是 | 调用方的应用身份标识,获取方法参照示例。 | | tokenID | number | 是 | 调用方的应用身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 |
| permissionName | string | 是 | 需要使用的权限名。 | | permissionName | string | 是 | 需要使用的权限名。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 异步回调,返回停止使用权限的结果。 | | callback | AsyncCallback&lt;void&gt; | 是 | 异步回调,返回停止使用权限的结果。 |
**示例:** **示例:**
```js ```js
import bundle from '@ohos.bundle';
import privacyManager from '@ohos.privacyManager'; import privacyManager from '@ohos.privacyManager';
let bundleName = "com.ohos.permissionmanager"; // change to your bundle name let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId
bundle.getApplicationInfo(bundleName, 16).then(appInfo => { try {
let tokenID = appInfo.accessTokenId; privacyManager.stopUsingPermission(tokenID, "ohos.permission.PERMISSION_USED_STATS", (data, err) => {
let permissionName = "ohos.permission.CAMERA";
privacyManager.stopUsingPermission(tokenID, permissionName, (err, data)=> {
if (err) { if (err) {
console.log(`Error: err->${JSON.stringify(err)}`); console.log(`stopUsingPermission fail, err->${JSON.stringify(err)}`);
} else { } else {
console.log(`promise: data->${JSON.stringify(data)}`); console.log('stopUsingPermission success');
} }
}); });
}) } catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
}
``` ```
## privacyManager.on<sup>9+</sup> ## privacyManager.on
on(type: 'activeStateChange', permissionNameList: Array&lt;string&gt;, callback: Callback&lt;ActiveChangeResponse&gt;): void on(type: 'activeStateChange', permissionNameList: Array&lt;string&gt;, callback: Callback&lt;ActiveChangeResponse&gt;): void
...@@ -354,20 +368,17 @@ on(type: 'activeStateChange', permissionNameList: Array&lt;string&gt;, callback: ...@@ -354,20 +368,17 @@ on(type: 'activeStateChange', permissionNameList: Array&lt;string&gt;, callback:
```js ```js
import privacyManager from '@ohos.privacyManager'; import privacyManager from '@ohos.privacyManager';
function OnPermissionUseStateChanged(data){
console.debug("receive permission state change, data:" + JSON.stringify(data));
}
let type: 'activeStateChange' = 'activeStateChange';
let permissionNameList: Array<string> = []; let permissionNameList: Array<string> = [];
try{ try {
privacyManager.on(type, permissionNameList, OnPermissionUseStateChanged); atManager.on('activeStateChange', permissionNameList, (data) => {
} console.debug("receive permission state change, data:" + JSON.stringify(data));
catch(err){ });
console.error("on err:" + JSON.stringify(err)); } catch(err) {
console.log(`catch err->${JSON.stringify(err)}`);
} }
``` ```
## privacyManager.off<sup>9+</sup> ## privacyManager.off
off(type: 'activeStateChange', permissionNameList: Array&lt;string&gt;, callback?: Callback&lt;ActiveChangeResponse&gt;): void; off(type: 'activeStateChange', permissionNameList: Array&lt;string&gt;, callback?: Callback&lt;ActiveChangeResponse&gt;): void;
...@@ -392,13 +403,11 @@ off(type: 'activeStateChange', permissionNameList: Array&lt;string&gt;, callback ...@@ -392,13 +403,11 @@ off(type: 'activeStateChange', permissionNameList: Array&lt;string&gt;, callback
```js ```js
import privacyManager from '@ohos.privacyManager'; import privacyManager from '@ohos.privacyManager';
let type: 'activeStateChange' = 'activeStateChange';
let permissionNameList: Array<string> = []; let permissionNameList: Array<string> = [];
try{ try {
privacyManager.off(type, permissionNameList); privacyManager.off('activeStateChange', permissionNameList);
} }catch(err) {
catch(err){ console.log(`catch err->${JSON.stringify(err)}`);
console.error("off err:" + JSON.stringify(err));
} }
``` ```
...@@ -485,7 +494,7 @@ catch(err){ ...@@ -485,7 +494,7 @@ catch(err){
| timestamp | number | 否 | 访问时的时间戳,单位:ms。 | | timestamp | number | 否 | 访问时的时间戳,单位:ms。 |
| accessDuration | number | 否 | 访问时长,单位:ms。 | | accessDuration | number | 否 | 访问时长,单位:ms。 |
## PermissionActiveStatus<sup>9+</sup> ## PermissionActiveStatus
表示权限使用状态类型的枚举。 表示权限使用状态类型的枚举。
...@@ -497,7 +506,7 @@ catch(err){ ...@@ -497,7 +506,7 @@ catch(err){
| PERM_ACTIVE_IN_FOREGROUND | 1 | 表示前台使用权限。 | | PERM_ACTIVE_IN_FOREGROUND | 1 | 表示前台使用权限。 |
| PERM_ACTIVE_IN_BACKGROUND | 2 | 表示后台使用权限。 | | PERM_ACTIVE_IN_BACKGROUND | 2 | 表示后台使用权限。 |
## ActiveChangeResponse<sup>9+</sup> ## ActiveChangeResponse
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Security.AccessToken **系统能力:** 以下各项对应的系统能力均为SystemCapability.Security.AccessToken
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册