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