1# @ohos.ability.screenLockFileManager (锁屏敏感数据管理) 2 3<!--Kit: Ability Kit--> 4<!--Subsystem: Security--> 5<!--Owner: @hongjin-li_admin--> 6<!--Designer: @JerryH1011--> 7<!--Tester: @leiyuqian--> 8<!--Adviser: @zengyawen--> 9 10敏感数据密钥在锁屏后会触发销毁,销毁后敏感数据无法读写,需解锁屏幕触发恢复敏感数据密钥后方可访问。本模块提供应用锁屏下敏感数据保护的能力,支持申请和释放锁屏下敏感数据访问权限等。 11 12> **说明:** 13> 本模块首批接口从API version 12 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 14 15## 导入模块 16 17```ts 18import { screenLockFileManager } from '@kit.AbilityKit'; 19``` 20 21## AccessStatus 22 23表示锁屏下敏感数据访问权限申请的状态枚举。 24 25 **系统能力:** SystemCapability.Security.ScreenLockFileManager 26 27| 名称 | 值 | 说明 | 28| -------------- | ---- | ------------------------ | 29| ACCESS_DENIED | -1 | 拒绝授予锁屏下敏感数据访问。 | 30| ACCESS_GRANTED | 0 | 授予锁屏下敏感数据访问。 | 31 32 33## ReleaseStatus 34 35表示锁屏下敏感数据访问权限释放的状态枚举。 36 37 **系统能力:** SystemCapability.Security.ScreenLockFileManager 38 39| 名称 | 值 | 说明 | 40|-----------------|----|----| 41| RELEASE_DENIED | -1 | 拒绝锁屏下敏感数据访问释放。 | 42| RELEASE_GRANTED | 0 | 释放锁屏下敏感数据访问。 | 43 44## KeyStatus<sup>18+</sup> 45 46表示锁屏下敏感数据访问权限的状态枚举。 47 48 **系统能力:** SystemCapability.Security.ScreenLockFileManager 49 50| 名称 | 值 | 说明 | 51|-----------------|----|----| 52| KEY_NOT_EXIST | -2 | 应用未开启锁屏敏感数据保护功能。 | 53| KEY_RELEASED | -1 | 锁屏敏感数据访问权限已释放。 | 54| KEY_EXIST | 0 | 应用可以访问锁屏敏感数据。 | 55 56## screenLockFileManager.acquireAccess 57 58acquireAccess(): AccessStatus 59 60以同步方法申请锁屏下应用敏感数据访问权限。锁屏后,敏感数据无法被访问,但可通过调用该方法,访问本应用的敏感数据。 61 62**系统能力:** SystemCapability.Security.ScreenLockFileManager 63 64**返回值:** 65 66| 类型 | 说明 | 67| ----------------------------------------------------------- | ------------------------------------- | 68| [AccessStatus](#accessstatus) | 锁屏下敏感数据访问权限申请的状态。 | 69 70**错误码:** 71 72以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.screenLockFileManager错误码](errorcode-screenLockFileManager.md)。 73 74| 错误码ID | 错误信息 | 75| -------- | ------------------------------------------------------------ | 76| 801 | The specified SystemCapability name was not found. | 77| 29300002 | The system ability work abnormally. | 78| 29300003 | The application is not enabled the data protection under lock screen. | 79| 29300004 | File access is denied. | 80 81**示例:** 82 83```ts 84// 申请锁屏下应用敏感数据访问权限 85import { screenLockFileManager } from '@kit.AbilityKit'; 86import { BusinessError } from '@kit.BasicServicesKit'; 87import { hilog } from '@kit.PerformanceAnalysisKit'; 88 89try { 90 let acquireStatus = screenLockFileManager.acquireAccess(); 91 if (acquireStatus === screenLockFileManager.AccessStatus.ACCESS_GRANTED) { 92 hilog.info(0x0000, 'testTag', 'acquireAccess successfully.'); 93 } 94} catch (err) { 95 let message = (err as BusinessError).message; 96 hilog.error(0x0000, 'testTag', 'acquireAccess failed: %{public}s', message); 97} 98``` 99 100## screenLockFileManager.releaseAccess 101 102releaseAccess(): ReleaseStatus 103 104以同步方法取消锁屏下本应用敏感数据访问权限。 105 106**系统能力:** SystemCapability.Security.ScreenLockFileManager 107 108**返回值:** 109 110| 类型 | 说明 | 111| ------------------------------- | ------------------------------ | 112| [ReleaseStatus](#releasestatus) | 锁屏下敏感数据访问权限释放的状态。 | 113 114**错误码:** 115 116以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.screenLockFileManager错误码](errorcode-screenLockFileManager.md)。 117 118| 错误码ID | 错误信息 | 119| -------- | ------------------------------------------------------------ | 120| 801 | The specified SystemCapability name was not found. | 121| 29300002 | The system ability work abnormally. | 122| 29300003 | The application is not enabled the data protection under lock screen. | 123| 29300005 | File access was not acquired. | 124 125**示例:** 126 127```ts 128// 释放锁屏下应用敏感数据访问权限 129import { screenLockFileManager } from '@kit.AbilityKit'; 130import { BusinessError } from '@kit.BasicServicesKit'; 131import { hilog } from '@kit.PerformanceAnalysisKit'; 132 133try { 134 let releaseStatus = screenLockFileManager.releaseAccess(); 135 if (releaseStatus === screenLockFileManager.ReleaseStatus.RELEASE_GRANTED) { 136 hilog.info(0x0000, 'testTag', 'releaseAccess successfully.'); 137 } 138} catch (err) { 139 let message = (err as BusinessError).message; 140 hilog.error(0x0000, 'testTag', 'releaseAccess failed: %{public}s', message); 141} 142``` 143 144## screenLockFileManager.queryAppKeyState<sup>18+</sup> 145 146queryAppKeyState(): KeyStatus 147 148以同步方法查询锁屏下本应用敏感数据访问权限。 149 150**系统能力:** SystemCapability.Security.ScreenLockFileManager 151 152**返回值:** 153 154| 类型 | 说明 | 155| ------------------------------- | ------------------------------ | 156| [KeyStatus](#keystatus18) | 锁屏下敏感数据访问权限的状态。 | 157 158**错误码:** 159 160以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.screenLockFileManager错误码](errorcode-screenLockFileManager.md)。 161 162| 错误码ID | 错误信息 | 163| -------- | ------------------------------------------------------------ | 164| 801 | The specified SystemCapability name was not found. | 165| 29300002 | The system ability work abnormally. | 166 167**示例:** 168 169```ts 170// 查询锁屏下应用敏感数据访问权限 171import { screenLockFileManager } from '@kit.AbilityKit'; 172import { BusinessError } from '@kit.BasicServicesKit'; 173import { hilog } from '@kit.PerformanceAnalysisKit'; 174 175try { 176 let keyStatus = screenLockFileManager.queryAppKeyState(); 177 if (keyStatus === screenLockFileManager.KeyStatus.KEY_NOT_EXIST) { 178 hilog.info(0x0000, 'testTag', 'Key does not exist.'); 179 } else if (keyStatus === screenLockFileManager.KeyStatus.KEY_RELEASED) { 180 hilog.info(0x0000, 'testTag', 'Key has been released.'); 181 } else if (keyStatus === screenLockFileManager.KeyStatus.KEY_EXIST) { 182 hilog.info(0x0000, 'testTag', 'Key exists.'); 183 } 184} catch (err) { 185 let message = (err as BusinessError).message; 186 hilog.error(0x0000, 'testTag', 'queryAppKeyState failed: %{public}s', message); 187} 188```