Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
e4213905
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e4213905
编写于
10月 09, 2022
作者:
C
chennian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
错误码抛异常修改
Signed-off-by:chennian<chennian1@huawei.com> Signed-off-by:
N
chennian
<
chennian1@huawei.com
>
上级
9eca7640
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
260 addition
and
179 deletion
+260
-179
zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md
...plication-dev/reference/apis/js-apis-abilityAccessCtrl.md
+145
-73
zh-cn/application-dev/reference/apis/js-apis-privacyManager.md
.../application-dev/reference/apis/js-apis-privacyManager.md
+115
-106
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md
浏览文件 @
e4213905
...
...
@@ -36,9 +36,9 @@ var AtManager = abilityAccessCtrl.createAtManager();
管理访问控制模块的实例。
###
verifyAccessToken
###
checkAccessToken<sup>9+</sup>
verify
AccessToken(tokenID: number, permissionName: string): Promise
<
GrantStatus
>
check
AccessToken(tokenID: number, permissionName: string): Promise
<
GrantStatus
>
校验应用是否授予权限,使用Promise方式异步返回结果。
...
...
@@ -55,17 +55,24 @@ verifyAccessToken(tokenID: number, permissionName: string): Promise<GrantStat
| 类型 | 说明 |
| :------------ | :---------------------------------- |
| Promise
<
GrantStatus
>
| Promise
实例,用于获取异步返回的
授权状态结果。 |
| Promise
<
GrantStatus
>
| 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
<
number
>
grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise
<
void
>
授予应用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
<
number
>
| Promise实例,用于获取异步返回的授权操作结果
。 |
| Promise
<
void
>
| 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
<
number
>
): void
grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback
<
void
>
): 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
<
number
>
| 是 | 检查授予应用user grant权限的操作结果同步的回调。 |
| callback | AsyncCallback
<
void
>
| 是 | 检查授予应用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
<
number
>
revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise
<
void
>
撤销应用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
<
number
>
| Promise实例,用于获取异步返回的授权操作结果
。 |
| Promise
<
void
>
| 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
<
number
>
): void
revokeUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number, callback: AsyncCallback
<
void
>
): 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
<
number
>
| 是 | 检查撤销应用user grant权限的操作结果同步的回调。 |
| callback | AsyncCallback
<
void
>
| 是 | 检查撤销应用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<number&g
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------- | ---- | ------------------------------------------------------------ |
| tokenID | number | 是 | 目标应用的身份标识。 |
| tokenID | number | 是 | 目标应用的身份标识。
可通过应用的
[
ApplicationInfo
](
js-apis-bundle-ApplicationInfo.md
)
获得
|
| permissionName | string | 是 | 查询的权限名称。 |
**返回值:**
| 类型 | 说明 |
| :------------ | :---------------------------------- |
| Promise
<
number
>
| Promise
实例,用于获取异步返回的
查询结果。 |
| Promise
<
number
>
| 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<number>
| 类型 | 说明 |
| :------------ | :---------------------------------- |
| Promise
<
number
>
| Promise
实例,用于获取异步返回
的版本号。 |
| Promise
<
number
>
| Promise
对象。返回查询到
的版本号。 |
**示例:**
...
...
@@ -334,18 +375,15 @@ on(type: 'permissionStateChange', tokenIDList: Array<number>, 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<number>, 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
<
GrantStatus
>
校验应用是否授予权限,使用Promise方式异步返回结果。
> **说明:** 从API version 9开始不再维护,建议使用[checkAccessToken](#checkaccesstoken9)替代。
**系统能力:**
SystemCapability.Security.AccessToken
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | ------------------------------------------ |
| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的
[
ApplicationInfo
](
js-apis-bundle-ApplicationInfo.md
)
获得 |
| permissionName | string | 是 | 需要校验的权限名称。 |
**返回值:**
| 类型 | 说明 |
| :------------ | :---------------------------------- |
| Promise
<
GrantStatus
>
| 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
表示授权状态的枚举。
...
...
zh-cn/application-dev/reference/apis/js-apis-privacyManager.md
浏览文件 @
e4213905
...
...
@@ -15,7 +15,7 @@ import privacyManager from '@ohos.privacyManager';
## privacyManager.addPermissionUsedRecord
addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number): Promise
<
number
>
addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number): Promise
<
void
>
受应用权限保护的应用在被其他服务、应用调用时,可以使用该接口增加一条权限使用记录。使用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
<
number
>
| Promise对象。返回
`0`
表示成功增加记录,返回
`-1`
表示失败
。 |
| Promise
<
void
>
| 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
<
number
>
): void
addPermissionUsedRecord(tokenID: number, permissionName: string, successCount: number, failCount: number, callback: AsyncCallback
<
void
>
): 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
<
number
>
| 是 | 回调函数。返回
`0`
表示成功增加记录,返回
`-1`
表示失败
。 |
| callback | AsyncCallback
<
void
>
| 是 | 回调函数
。 |
**示例:**
```
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<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
<
number
>
startUsingPermission(tokenID: number, permissionName: string): Promise
<
void
>
应用开始使用某项权限,可监听应用在前后台使用权限,并将使用权限的记录落盘,由系统服务调用。
...
...
@@ -181,37 +203,35 @@ startUsingPermission(tokenID: number, permissionName: string): Promise<number
| 参数名 | 类型 | 必填 | 说明 |
| -------------- | ------ | ---- | ------------------------------------ |
| tokenID | number | 是 | 调用方的应用身份标识
,获取方法参照示例
。 |
| tokenID | number | 是 | 调用方的应用身份标识
。可通过应用的
[
ApplicationInfo
](
js-apis-bundle-ApplicationInfo.md
)
获得
。 |
| permissionName | string | 是 | 需要使用的权限名。 |
**返回值:**
| 类型 | 说明 |
| ------------- | --------------------------------------- |
| Promise
<
number
>
| Promise对象。返回开始使用权限的结果
。|
| Promise
<
void
>
| 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
<
number
>
): void
startUsingPermission(tokenID: number, permissionName: string, callback: AsyncCallback
<
void
>
): 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
<
number
>
| 是 | 异步回调,返回开始使用权限的结果。 |
| callback | AsyncCallback
<
void
>
| 是 | 异步回调,返回开始使用权限的结果。 |
**示例:**
```
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
<
number
>
stopUsingPermission(tokenID: number, permissionName: string): Promise
<
void
>
应用停止使用某项权限,与Start对应,由系统服务调用。
...
...
@@ -262,37 +280,35 @@ stopUsingPermission(tokenID: number, permissionName: string): Promise<number&
| 参数名 | 类型 | 必填 | 说明 |
| -------------- | ------ | ---- | ------------------------------------ |
| tokenID | number | 是 | 调用方的应用身份标识
,获取方法参照示例
。 |
| tokenID | number | 是 | 调用方的应用身份标识
。可通过应用的
[
ApplicationInfo
](
js-apis-bundle-ApplicationInfo.md
)
获得
。 |
| permissionName | string | 是 | 需要使用的权限名。 |
**返回值:**
| 类型 | 说明 |
| ------------- | --------------------------------------- |
| Promise
<
number
>
| Promise对象。返回停止使用权限的结果
。|
| Promise
<
void
>
| 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
<
number
>
): void
stopUsingPermission(tokenID: number, permissionName: string, callback: AsyncCallback
<
void
>
): 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
<
number
>
| 是 | 异步回调,返回停止使用权限的结果。 |
| callback | AsyncCallback
<
void
>
| 是 | 异步回调,返回停止使用权限的结果。 |
**示例:**
```
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
<
string
>
, callback: Callback
<
ActiveChangeResponse
>
): void
...
...
@@ -354,20 +368,17 @@ on(type: 'activeStateChange', permissionNameList: Array<string>, 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
<
string
>
, callback?: Callback
<
ActiveChangeResponse
>
): void;
...
...
@@ -392,13 +403,11 @@ off(type: 'activeStateChange', permissionNameList: Array<string>, 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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录