1# @ohos.ability.screenLockFileManager (锁屏敏感数据管理)(系统接口)
2
3敏感数据密钥在锁屏后会触发销毁,销毁后敏感数据无法读写,需解锁屏幕触发恢复敏感数据密钥后方可访问。本模块提供应用锁屏下敏感数据保护的能力,支持申请和释放锁屏下敏感数据访问权限等。
4
5> **说明:**
6> - 本模块首批接口从API version 12 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
7>
8> - 当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.ability.screenLockFileManager](js-apis-screenLockFileManager.md)。
9
10## 导入模块
11
12```ts
13import { screenLockFileManager } from '@kit.AbilityKit';
14```
15
16## DataType
17
18枚举,指定锁屏下访问的敏感数据类型。
19
20 **系统能力:** SystemCapability.Security.ScreenLockFileManager
21
22 **系统接口:** 此接口为系统接口。
23
24| 名称       | 值         | 说明           |
25| ---------- | ---------- | -------------- |
26| MEDIA_DATA | 0x00000001 | 媒体类型数据。 |
27| ALL_DATA   | 0xffffffff | 所有敏感加密数据。     |
28
29## screenLockFileManager.acquireAccess
30
31acquireAccess(dataType: DataType): AccessStatus
32
33以同步方法申请锁屏下指定类型的敏感数据访问权限。 锁屏后,敏感数据无法被访问,但可通过调用该方法,访问指定类型的敏感数据。
34
35**系统接口:** 此接口为系统接口。
36
37**需要权限:** ohos.permission.ACCESS_SCREEN_LOCK_MEDIA_DATAohos.permission.ACCESS_SCREEN_LOCK_ALL_DATA
38
39**系统能力:** SystemCapability.Security.ScreenLockFileManager
40
41**参数:**
42
43| 参数名  | 类型   | 必填 | 说明                       |
44| ----------- | ------ | ---- | ---------------------------- |
45| dataType | [DataType](#datatype) | 是   | 锁屏下访问的敏感数据类型。 |
46
47**返回值:**
48
49| 类型                                                        | 说明                                  |
50| ----------------------------------------------------------- | ------------------------------------- |
51| [AccessStatus](js-apis-screenLockFileManager.md#accessstatus) | 锁屏下敏感数据访问权限申请的状态。 |
52
53**错误码:**
54
55以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.screenLockFileManager错误码](errorcode-screenLockFileManager.md)。
56
57| 错误码ID | 错误信息                                                     |
58| -------- | ------------------------------------------------------------ |
59| 201      | Permission verification failed, usually returned by VerifyAccessToken. |
60| 202      | Permission verification failed, application which is not a system application uses system API. |
61| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
62| 801 | The specified SystemCapability name was not found. |
63| 29300001 | Invalid parameter. |
64| 29300002 | The system ability work abnormally. |
65| 29300003 | The application is not enabled the data protection under lock screen. |
66| 29300004 | File access is denied. |
67
68**示例:**
69
70```ts
71// 申请锁屏下媒体类型数据的访问权限
72import { screenLockFileManager } from '@kit.AbilityKit';
73import { BusinessError } from '@kit.BasicServicesKit';
74import { hilog } from '@kit.PerformanceAnalysisKit';
75
76try {
77    let acquireStatus = screenLockFileManager.acquireAccess(screenLockFileManager.DataType.MEDIA_DATA);
78    if (acquireStatus === screenLockFileManager.AccessStatus.ACCESS_GRANTED) {
79        hilog.info(0x0000, 'testTag', 'acquireAccess successfully.');
80    }
81} catch (err) {
82    let message = (err as BusinessError).message;
83    hilog.error(0x0000, 'testTag', 'acquireAccess failed: %{public}s', message);
84}
85```
86
87## screenLockFileManager.releaseAccess
88
89releaseAccess(dataType: DataType): ReleaseStatus
90
91以同步方法取消锁屏下指定类型敏感数据访问权限。
92
93**系统接口:** 此接口为系统接口。
94
95**需要权限:** ohos.permission.ACCESS_SCREEN_LOCK_MEDIA_DATAohos.permission.ACCESS_SCREEN_LOCK_ALL_DATA
96
97**系统能力:** SystemCapability.Security.ScreenLockFileManager
98
99**参数:**
100
101| 参数名  | 类型   | 必填 | 说明                       |
102| ----------- | ------ | ---- | ---------------------------- |
103| dataType | [DataType](#datatype) | 是   | 锁屏下访问的敏感数据类型。 |
104
105**返回值:**
106
107| 类型                                                         | 说明                           |
108| ------------------------------------------------------------ | ------------------------------ |
109| [ReleaseStatus](js-apis-screenLockFileManager.md#releasestatus) | 锁屏下敏感数据访问权限释放的状态。 |
110
111**错误码:**
112
113以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.screenLockFileManager错误码](errorcode-screenLockFileManager.md)。
114
115| 错误码ID | 错误信息                                                     |
116| -------- | ------------------------------------------------------------ |
117| 201      | Permission verification failed, usually returned by VerifyAccessToken. |
118| 202      | Permission verification failed, application which is not a system application uses system API. |
119| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
120| 801      | The specified SystemCapability name was not found.           |
121| 29300001 | Invalid parameter.                                           |
122| 29300002 | The system ability work abnormally.                          |
123| 29300003 | The application is not enabled the data protection under lock screen. |
124| 29300005 | File access was not acquired.                                |
125
126**示例:**
127
128```ts
129// 释放锁屏下媒体类型数据的访问权限
130import { screenLockFileManager } from '@kit.AbilityKit';
131import { BusinessError } from '@kit.BasicServicesKit';
132import { hilog } from '@kit.PerformanceAnalysisKit';
133
134try {
135    let releaseStatus = screenLockFileManager.releaseAccess(screenLockFileManager.DataType.MEDIA_DATA);
136    if (releaseStatus === screenLockFileManager.ReleaseStatus.RELEASE_GRANTED) {
137        hilog.info(0x0000, 'testTag', 'releaseAccess successfully.');
138    }
139} catch (err) {
140    let message = (err as BusinessError).message;
141    hilog.error(0x0000, 'testTag', 'releaseAccess failed: %{public}s', message);
142}
143```