• 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
102  screenLock.unlock((err, data) => {
103    if (err) {
104      console.error(`Failed to unlock the screen, Code: ${err.code}, message: ${err.message}`);
105      return;
106    }
107    console.info(`Succeeded in unlocking the screen. 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
138  screenLock.unlock().then((data) => {
139    console.info(`Succeeded in unlocking the screen. result: ${data}`);
140  }).catch((err) => {
141    console.error(`Failed to unlock the screen, Code: ${err.code}, message: ${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
172  screenLock.lock((err, data) => {
173    if (err) {
174      console.error(`Failed to lock the screen, Code: ${err.code}, message: ${err.message}`);
175      return;
176    }
177    console.info(`Succeeded in locking the screen. 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
208  screenLock.lock().then((data) => {
209    console.info(`Succeeded in locking the screen. result: ${data}`);
210  }).catch((err) => {
211    console.error(`Failed to lock the screen, Code: ${err.code}, message: ${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
248  try {
249    let isSuccess = screenLock.onSystemEvent((event) => {
250      console.log(`Succeeded in Registering the system event which related to screenlock. eventType: ${event.eventType}`)
251    });
252  } catch (err) {
253    console.error(`Failed to register the system event which related to screenlock, Code: ${err.code}, message: ${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
286  screenLock.sendScreenLockEvent('unlockScreenResult', 0, (err, result) => {
287    if (err) {
288      console.error(`Failed to send screenlock event, Code: ${err.code}, message: ${err.message}`);
289      return;
290    }
291    console.info(`Succeeded in Sending screenlock event. 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
329  screenLock.sendScreenLockEvent('unlockScreenResult', 0).then((result) => {
330    console.info(`Succeeded in Sending screenlock event. result: ${result}`);
331  }).catch((err) => {
332    console.error(`Failed to send screenlock event, Code: ${err.code}, message: ${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
357  screenLock.isScreenLocked((err, data)=>{
358    if (err) {
359      console.error(`Failed to obtain whether the screen is locked, Code: ${err.code}, message: ${err.message}`);
360      return;
361    }
362    console.info(`Succeeded in Obtaining whether the screen is locked. 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
387  screenLock.isScreenLocked().then((data) => {
388    console.info(`Succeeded in Obtaining whether the screen is locked. result: ${data}`);
389  }).catch((err) => {
390    console.error(`Failed to obtain whether the screen is locked, Code: ${err.code}, message: ${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
415  screenLock.isSecureMode((err, data)=>{
416    if (err) {
417      console.error(`Failed to obtain whether the device is in secure mode, Code: ${err.code}, message: ${err.message}`);
418      return;
419    }
420    console.info(`Succeeded in Obtaining whether the device is in secure mode. 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
445  screenLock.isSecureMode().then((data) => {
446    console.info(`Succeeded in Obtaining whether the device is in secure mode. result: ${data}`);
447  }).catch((err) => {
448    console.error(`Failed to obtain whether the device is in secure mode, Code: ${err.code}, message: ${err.message}`);
449  });
450  ```
451
452## screenLock.unlockScreen<sup>(deprecated)</sup>
453
454unlockScreen(callback: AsyncCallback&lt;void&gt;): void
455
456解锁屏幕。使用callback异步回调。
457
458> **说明:**
459>
460> 从API version 7开始支持,从API version 9开始废弃。
461
462**系统能力:** SystemCapability.MiscServices.ScreenLock
463
464**参数:**
465
466| 参数名   | 类型              | 必填 | 说明             |
467| -------- | ------------- | ---- | --------------- |
468| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。解锁屏幕成功,err为undefined,否则为错误对象。 |
469
470**示例:**
471
472  ```js
473  screenLock.unlockScreen((err) => {
474    if (err) {
475      console.error(`Failed to unlock the screen, Code: ${err.code}, message: ${err.message}`);
476      return;
477    }
478    console.info(`Succeeded unlocking the screen.`);
479  });
480  ```
481
482## screenLock.unlockScreen<sup>(deprecated)</sup>
483
484unlockScreen(): Promise&lt;void&gt;
485
486解锁屏幕。使用Promise异步回调。
487
488> **说明:**
489>
490> 从API version 7开始支持,从API version 9开始废弃。
491
492**系统能力:** SystemCapability.MiscServices.ScreenLock
493
494**返回值:**
495
496| 类型                | 说明                      |
497| ------------------- | ------------------------- |
498| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
499
500**示例:**
501
502  ```js
503  screenLock.unlockScreen().then(() => {
504    console.info('Succeeded unlocking the screen.');
505  }).catch((err) => {
506    console.error(`Failed to unlock the screen, Code: ${err.code}, message: ${err.message}`);
507  });
508  ```
509