1# @ohos.screenLock (锁屏管理) 2 3锁屏管理服务是OpenHarmony中的系统服务,为锁屏应用提供注册亮屏、灭屏、开启屏幕、结束休眠、退出动画、请求解锁结果监听,并提供回调结果给锁屏应用。锁屏管理服务向三方应用提供请求解锁、查询锁屏状态、查询是否设置锁屏密码的能力。 4 5> **说明:** 6> 7> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```js 12import screenlock from '@ohos.screenLock'; 13``` 14 15## EventType<sup>9+</sup> 16 17定义系统事件类型。 18 19**系统能力:** SystemCapability.MiscServices.ScreenLock 20 21**系统接口**:此接口为系统接口。 22 23| 事件类型 | 说明 | 24| ------------------ | ------------------------ | 25| beginWakeUp | 表示设备开始唤醒。 | 26| endWakeUp | 表示设备结束唤醒。 | 27| beginScreenOn | 表示设备开始亮屏。 | 28| endScreenOn | 表示设备结束亮屏。 | 29| beginScreenOff | 表示设备开始灭屏。 | 30| endScreenOff | 表示设备结束灭屏。 | 31| unlockScreen | 表示请求屏幕解锁。 | 32| lockScreen | 表示请求屏幕锁定。 | 33| beginExitAnimation | 表示开始退场动画。 | 34| beginSleep | 表示设备开始休眠。 | 35| endSleep | 表示设备结束休眠。 | 36| changeUser | 表示切换用户。 | 37| screenlockEnabled | 表示锁屏是否启用。 | 38| serviceRestart | 表示锁屏服务进行重启。 | 39 40## SystemEvent<sup>9+</sup> 41 42定义系统事件回调参数结构。 43 44**系统能力:** SystemCapability.MiscServices.ScreenLock 45 46**系统接口**:此接口为系统接口。 47 48| 名称 | 类型 | 必填 | 说明 | 49| --------- | ------ | ---- | ------------- | 50| eventType | [EventType](#eventtype9) | 是 | 系统事件类型。 | 51| params | string | 是 | 系统事件参数。 | 52 53## screenlock.isLocked<sup>9+</sup> 54 55isLocked(): boolean 56 57判断屏幕是否锁屏。 58 59**系统能力:** SystemCapability.MiscServices.ScreenLock 60 61**系统接口**:此接口为系统接口。 62 63**返回值:** 64 65| 类型 | 说明 | 66| ------- | ------------------------------------------------- | 67| boolean | 返回true表示屏幕已锁屏;返回false表示屏幕未锁屏。 | 68 69**示例:** 70 71```js 72let isLocked = screenlock.isLocked(); 73``` 74 75## screenlock.unlock<sup>9+</sup> 76 77unlock(callback: AsyncCallback<boolean>): void 78 79解锁屏幕。使用callback异步回调。 80 81**系统能力:** SystemCapability.MiscServices.ScreenLock 82 83**系统接口**:此接口为系统接口。 84 85**参数:** 86 87| 参数名 | 类型 | 必填 | 说明 | 88| -------- | --------------------- | ---- | ------------------------- | 89| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示屏幕解锁成功;返回false表示屏幕解锁失败。 | 90 91**错误码**: 92 93以下错误码的详细介绍请参见[锁屏服务错误码](../errorcodes/errorcode-screenlock.md)。 94 95| 错误码ID | 错误信息 | 96| -------- | ---------------------------------------- | 97| 13200002 | the screenlock management service is abnormal. | 98 99**示例:** 100 101```js 102screenlock.unlock((err, data) => { 103 if (err) { 104 console.error(`Failed to unlock the screen, because: ${err.message}`); 105 return; 106 } 107 console.info(`unlock the screen successfully. result: ${data}`); 108}); 109``` 110 111## screenlock.unlock<sup>9+</sup> 112 113unlock(): Promise<boolean> 114 115解锁屏幕。使用Promise异步回调。 116 117**系统能力:** SystemCapability.MiscServices.ScreenLock 118 119**系统接口**:此接口为系统接口。 120 121**返回值:** 122 123| 类型 | 说明 | 124| ------------------- | ------------------------------------------------------------ | 125| Promise<boolean> | Promise对象。返回true表示屏幕解锁成功;返回false表示屏幕解锁失败。 | 126 127**错误码**: 128 129以下错误码的详细介绍请参见[锁屏服务错误码](../errorcodes/errorcode-screenlock.md)。 130 131| 错误码ID | 错误信息 | 132| -------- | ---------------------------------------- | 133| 13200002 | the screenlock management service is abnormal. | 134 135**示例:** 136 137```js 138screenlock.unlock().then((data) => { 139 console.info(`unlock the screen successfully. result: ${data}`); 140}).catch((err) => { 141 console.error(`Failed to unlock the screen, because: ${err.message}`); 142}); 143``` 144 145## screenlock.lock<sup>9+</sup> 146 147lock(callback: AsyncCallback<boolean>): void 148 149锁定屏幕。使用callback异步回调。 150 151**系统能力:** SystemCapability.MiscServices.ScreenLock 152 153**系统接口**:此接口为系统接口。 154 155**参数:** 156 157| 参数名 | 类型 | 必填 | 说明 | 158| -------- | ---------------------- | ---- | ---------------- | 159| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示屏幕锁定成功;返回false表示屏幕锁定失败。 | 160 161**错误码**: 162 163以下错误码的详细介绍请参见[锁屏服务错误码](../errorcodes/errorcode-screenlock.md)。 164 165| 错误码ID | 错误信息 | 166| -------- | ---------------------------------------- | 167| 13200002 | the screenlock management service is abnormal. | 168 169**示例:** 170 171```js 172screenlock.lock((err, data) => { 173 if (err) { 174 console.error(`Failed to lock the screen, because: ${err.message}`); 175 return; 176 } 177 console.info(`lock the screen successfully. result: ${data}`); 178}); 179``` 180 181## screenlock.lock<sup>9+</sup> 182 183lock(): Promise<boolean> 184 185锁定屏幕。使用Promise异步回调。 186 187**系统能力:** SystemCapability.MiscServices.ScreenLock 188 189**系统接口**:此接口为系统接口。 190 191**返回值:** 192 193| 类型 | 说明 | 194| ---------------------- | ------------------------------------------------------------ | 195| Promise<boolean> | Promise对象。返回true表示屏幕锁定成功;返回false表示屏幕锁定失败。 | 196 197**错误码**: 198 199以下错误码的详细介绍请参见[锁屏服务错误码](../errorcodes/errorcode-screenlock.md)。 200 201| 错误码ID | 错误信息 | 202| -------- | ---------------------------------------- | 203| 13200002 | the screenlock management service is abnormal. | 204 205**示例:** 206 207```js 208screenlock.lock().then((data) => { 209 console.info(`lock the screen successfully. result: ${data}`); 210}).catch((err) => { 211 console.error(`Failed to lock the screen, because: ${err.message}`); 212}); 213``` 214 215## screenlock.onSystemEvent<sup>9+</sup> 216 217onSystemEvent(callback: Callback<SystemEvent>): boolean 218 219注册锁屏相关的系统事件,仅系统锁屏应用可调用。 220 221**系统能力:** SystemCapability.MiscServices.ScreenLock 222 223**系统接口**:此接口为系统接口。 224 225**参数:** 226 227| 参数名 | 类型 | 必填 | 说明 | 228| -------- | ------------------------- | ---- | ----------------- | 229| callback | Callback\<[SystemEvent](#systemevent9)> | 是 | 锁屏相关的系统事件回调函数。 | 230 231**返回值:** 232 233| 类型 | 说明 | 234| ------- | ------------------------------------------------- | 235| boolean | 返回true表示锁屏相关系统事件注册成功;返回false表示锁屏相关系统事件注册失败。 | 236 237**错误码**: 238 239以下错误码的详细介绍请参见[锁屏服务错误码](../errorcodes/errorcode-screenlock.md)。 240 241| 错误码ID | 错误信息 | 242| -------- | ---------------------------------------- | 243| 13200002 | the screenlock management service is abnormal. | 244 245**示例:** 246 247```js 248try { 249 let isSuccess = screenlock.onSystemEvent((event) => { 250 console.log(`Register the system event which related to screenlock successfully. eventType: ${event.eventType}`) 251 }); 252} catch (err) { 253 console.error(`Failed to register the system event which related to screenlock, because: ${err.message}`) 254} 255``` 256 257## screenlock.sendScreenLockEvent<sup>9+</sup> 258 259sendScreenLockEvent(event: String, parameter: number, callback: AsyncCallback<boolean>): void 260 261应用发送事件到锁屏服务。使用callback异步回调。 262 263**系统能力:** SystemCapability.MiscServices.ScreenLock 264 265**系统接口**:此接口为系统接口。 266 267**参数:** 268 269| 参数名 | 类型 | 必填 | 说明 | 270| --------- | ------------------------ | ---- | -------------------- | 271| event | String | 是 | 事件类型,支持如下取值:<br/>- "unlockScreenResult",表示解锁结果。<br/>- "lockScreenResult",表示锁屏结果。<br/>- "screenDrawDone",表示屏幕绘制完成。 | 272| parameter | number | 是 | 事件结果。<br/>- parameter为0,表示成功。例如解锁成功或锁屏成功。<br/>- parameter为1,表示失败。例如解锁失败或锁屏失败。<br/>- parameter为2,表示取消。例如锁屏取消或解锁取消。 | 273| callback | AsyncCallback\<boolean> | 是 | 回调函数。返回true表示发送事件成功;返回false表示发送事件失败。 | 274 275**错误码**: 276 277以下错误码的详细介绍请参见[锁屏服务错误码](../errorcodes/errorcode-screenlock.md)。 278 279| 错误码ID | 错误信息 | 280| -------- | ---------------------------------------- | 281| 13200002 |the screenlock management service is abnormal. | 282 283**示例:** 284 285```js 286screenlock.sendScreenLockEvent('unlockScreenResult', 0, (err, result) => { 287 if (err) { 288 console.error(`Failed to send screenlock event, because: ${err.message}`); 289 return; 290 } 291 console.info(`Send screenlock event successfully. result: ${result}`); 292}); 293``` 294 295## screenlock.sendScreenLockEvent<sup>9+</sup> 296 297sendScreenLockEvent(event: String, parameter: number): Promise<boolean> 298 299应用发送事件到锁屏服务。使用Promise异步回调。 300 301**系统能力:** SystemCapability.MiscServices.ScreenLock 302 303**系统接口**:此接口为系统接口。 304 305**参数:** 306 307| 参数名 | 类型 | 必填 | 说明 | 308| --------- | ------ | ---- | --------------------------------------- | 309| event | String | 是 | 事件类型,支持如下取值:<br/>- "unlockScreenResult",表示解锁结果。<br/>- "lockScreenResult",表示锁屏结果。<br/>- "screenDrawDone",表示屏幕绘制完成。 | 310| parameter | number | 是 | 事件结果。<br/>- parameter为0,表示成功。例如解锁成功或锁屏成功。<br/>- parameter为1,表示失败。例如解锁失败或锁屏失败。<br/>- parameter为2,表示取消。例如锁屏取消或解锁取消。 | 311 312**返回值:** 313 314| 类型 | 说明 | 315| ----------------- | ---------------------------------------------- | 316| Promise\<boolean> | Promise对象。返回true表示发送事件成功;返回false表示发送事件失败。 | 317 318**错误码**: 319 320以下错误码的详细介绍请参见[锁屏服务错误码](../errorcodes/errorcode-screenlock.md)。 321 322| 错误码ID | 错误信息 | 323| -------- | ---------------------------------------- | 324| 13200002 | the screenlock management service is abnormal. | 325 326**示例:** 327 328```js 329screenlock.sendScreenLockEvent('unlockScreenResult', 0).then((result) => { 330 console.info(`Send screenlock event successfully. result: ${result}`); 331}).catch((err) => { 332 console.error(`Failed to send screenlock event, because: ${err.message}`); 333}); 334``` 335 336## screenlock.isScreenLocked<sup>(deprecated)</sup> 337 338isScreenLocked(callback: AsyncCallback<boolean>): void 339 340判断屏幕是否锁屏。使用callback异步回调。 341 342> **说明:** 343> 344> 从API version 7开始支持,从API version 9开始废弃。 345 346**系统能力:** SystemCapability.MiscServices.ScreenLock 347 348**参数:** 349 350| 参数名 | 类型 | 必填 | 说明 | 351| -------- | ---------------------------- | ---- | ----------------------------------------------------------- | 352| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示屏幕已锁屏;返回false表示屏幕未锁屏。 | 353 354**示例:** 355 356```js 357screenlock.isScreenLocked((err, data)=>{ 358 if (err) { 359 console.error(`Failed to obtain whether the screen is locked, because: ${err.message}`); 360 return; 361 } 362 console.info(`Obtain whether the screen is locked successfully. result: ${data}`); 363}); 364``` 365 366## screenlock.isScreenLocked<sup>(deprecated)</sup> 367 368isScreenLocked(): Promise<boolean> 369 370判断屏幕是否锁屏。使用Promise异步回调。 371 372> **说明:** 373> 374> 从API version 7开始支持,从API version 9开始废弃。 375 376**系统能力:** SystemCapability.MiscServices.ScreenLock 377 378**返回值:** 379 380| 类型 | 说明 | 381| ---------------------- | ------------------------------------------- | 382| Promise<boolean> | Promise对象。返回true表示屏幕已锁屏;返回false表示屏幕未锁屏。 | 383 384**示例:** 385 386```js 387screenlock.isScreenLocked().then((data) => { 388 console.info(`Obtain whether the screen is locked successfully. result: ${data}`); 389}).catch((err) => { 390 console.error(`Failed to obtain whether the screen is locked, because: ${err.message}`); 391}); 392``` 393 394## screenlock.isSecureMode<sup>(deprecated)</sup> 395 396isSecureMode(callback: AsyncCallback<boolean>): void 397 398判断当前设备的屏幕锁定是否安全(安全屏幕锁定意味着解锁屏幕需要密码、图案或其他用户身份识别)。使用callback异步回调。 399 400> **说明:** 401> 402> 从API version 7开始支持,从API version 9开始废弃。 403 404**系统能力:** SystemCapability.MiscServices.ScreenLock 405 406**参数:** 407 408| 参数名 | 类型 | 必填 | 说明 | 409| -------- | --------------------- | ---- | ------------------------ | 410| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示当前设备的屏幕锁定安全;返回false表示当前设备的屏幕锁定不安全。 | 411 412**示例:** 413 414```js 415screenlock.isSecureMode((err, data)=>{ 416 if (err) { 417 console.error(`Failed to obtain whether the device is in secure mode, because: ${err.message}`); 418 return; 419 } 420 console.info(`Obtain whether the device is in secure mode successfully. result: ${data}`); 421}); 422``` 423 424## screenlock.isSecureMode<sup>(deprecated)</sup> 425 426isSecureMode(): Promise<boolean> 427 428判断当前设备的屏幕锁定是否安全(安全屏幕锁定意味着解锁屏幕需要密码、图案或其他用户身份识别)。使用Promise异步回调。 429 430> **说明:** 431> 432> 从API version 7开始支持,从API version 9开始废弃。 433 434**系统能力:** SystemCapability.MiscServices.ScreenLock 435 436**返回值:** 437 438| 类型 | 说明 | 439| ---------------------- | ------------------------------------------------------------ | 440| Promise<boolean> | Promise对象。返回true表示当前设备的屏幕锁定安全;返回false表示当前设备的屏幕锁定不安全。 | 441 442**示例:** 443 444```js 445screenlock.isSecureMode().then((data) => { 446 console.info(`Obtain whether the device is in secure mode successfully. result: ${data}`); 447}).catch((err) => { 448 console.error(`Failed to obtain whether the device is in secure mode, because: ${err.message}`); 449}); 450``` 451## screenlock.unlockScreen<sup>(deprecated)</sup> 452 453unlockScreen(callback: AsyncCallback<void>): void 454 455解锁屏幕。使用callback异步回调。 456 457> **说明:** 458> 459> 从API version 7开始支持,从API version 9开始废弃。 460 461**系统能力:** SystemCapability.MiscServices.ScreenLock 462 463**参数:** 464 465| 参数名 | 类型 | 必填 | 说明 | 466| -------- | ------------- | ---- | --------------- | 467| callback | AsyncCallback<void> | 是 | 回调函数。解锁屏幕成功,err为undefined,否则为错误对象。 | 468 469**示例:** 470 471```js 472screenlock.unlockScreen((err) => { 473 if (err) { 474 console.error(`Failed to unlock the screen, because: ${err.message}`); 475 return; 476 } 477 console.info('unlock the screen successfully.'); 478}); 479``` 480 481## screenlock.unlockScreen<sup>(deprecated)</sup> 482 483unlockScreen(): Promise<void> 484 485解锁屏幕。使用Promise异步回调。 486 487> **说明:** 488> 489> 从API version 7开始支持,从API version 9开始废弃。 490 491**系统能力:** SystemCapability.MiscServices.ScreenLock 492 493**返回值:** 494 495| 类型 | 说明 | 496| ------------------- | ------------------------- | 497| Promise<void> | Promise对象。无返回结果的Promise对象。 | 498 499**示例:** 500 501```js 502screenlock.unlockScreen().then(() => { 503 console.info('unlock the screen successfully.'); 504}).catch((err) => { 505 console.error(`Failed to unlock the screen, because: ${err.message}`); 506}); 507``` 508