• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&lt;boolean&gt;): void
78
79解锁屏幕。使用callback异步回调。
80
81**系统能力:** SystemCapability.MiscServices.ScreenLock
82
83**系统接口**:此接口为系统接口。
84
85**参数:**
86
87| 参数名   | 类型          | 必填 | 说明                                 |
88| -------- | --------------------- | ---- | ------------------------- |
89| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。返回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&lt;boolean&gt;
114
115解锁屏幕。使用Promise异步回调。
116
117**系统能力:** SystemCapability.MiscServices.ScreenLock
118
119**系统接口**:此接口为系统接口。
120
121**返回值:**
122
123| 类型                | 说明                                                         |
124| ------------------- | ------------------------------------------------------------ |
125| Promise&lt;boolean&gt; | 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&lt;boolean&gt;): void
148
149锁定屏幕。使用callback异步回调。
150
151**系统能力:** SystemCapability.MiscServices.ScreenLock
152
153**系统接口**:此接口为系统接口。
154
155**参数:**
156
157| 参数名   | 类型          | 必填 | 说明                      |
158| -------- | ---------------------- | ---- | ---------------- |
159| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。返回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&lt;boolean&gt;
184
185锁定屏幕。使用Promise异步回调。
186
187**系统能力:** SystemCapability.MiscServices.ScreenLock
188
189**系统接口**:此接口为系统接口。
190
191**返回值:**
192
193| 类型                   | 说明                                                         |
194| ---------------------- | ------------------------------------------------------------ |
195| Promise&lt;boolean&gt; | 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&lt;SystemEvent&gt;): 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&lt;boolean&gt;): 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&lt;boolean&gt;
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&lt;boolean&gt;): 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&lt;boolean&gt; | 是   | 回调函数。返回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&lt;boolean&gt;
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&lt;boolean&gt; | 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&lt;boolean&gt;): 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&lt;boolean&gt; | 是   | 回调函数。返回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&lt;boolean&gt;
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&lt;boolean&gt; | 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&lt;void&gt;): 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&lt;void&gt; | 是 | 回调函数。解锁屏幕成功,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&lt;void&gt;
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&lt;void&gt; | 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