js-apis-screen-lock.md 12.1 KB
Newer Older
Z
zengyawen 已提交
1 2
# 锁屏管理

3 4
锁屏管理服务是OpenHarmony中系统服务,为锁屏应用提供注册亮屏、灭屏、开启屏幕、结束休眠、退出动画、请求解锁结果监听,并提供回调结果给锁屏应用。锁屏管理服务向三方应用提供请求解锁、查询锁屏状态、查询是否设置锁屏密码的能力。

Z
zengyawen 已提交
5 6 7 8 9 10 11
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块


A
aqxyjay 已提交
12
```js
Z
zengyawen 已提交
13 14 15 16 17 18 19 20 21 22 23 24
import screenlock from '@ohos.screenLock';
```


## screenlock.isScreenLocked

isScreenLocked(callback: AsyncCallback<boolean>): void

判断屏幕是否锁屏,使用callback作为异步方法。

**系统能力**: SystemCapability.MiscServices.ScreenLock

B
bmeangel 已提交
25 26
**参数:**

27
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
28 29 30
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback<boolean> | 是 | 回调函数,返回true表示屏幕已锁屏,返回false表示屏幕未锁屏。 | 

B
bmeangel 已提交
31
**示例:**
Z
zengyawen 已提交
32
  
A
aqxyjay 已提交
33
  ```js
Z
zengyawen 已提交
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
  screenlock.isScreenLocked((err, data)=>{      
     if (err) {
          console.error('isScreenLocked callback error -> ${JSON.stringify(err)}');
          return;    
     }
     console.info('isScreenLocked callback success data -> ${JSON.stringify(data)}');
  });
  ```


## screenlock.isScreenLocked

isScreenLocked(): Promise<boolean>

判断屏幕是否锁屏,使用Promise作为异步方法。

**系统能力**: SystemCapability.MiscServices.ScreenLock

52
**返回值**
B
bmeangel 已提交
53

Z
zengyawen 已提交
54 55 56 57
  | 类型 | 说明 | 
  | -------- | -------- |
  | Promise<boolean> | 以Promise形式返回结果。 | 

58
**示例**
Z
zengyawen 已提交
59

A
aqxyjay 已提交
60
  ```js
Z
zengyawen 已提交
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
  screenlock.isScreenLocked().then((data) => {
      console.log('isScreenLocked success: data -> ${JSON.stringify(data)}');
  }).catch((err) => {
      console.error('isScreenLocked fail, promise: err -> ${JSON.stringify(err)}');
  });
  ```


## screenlock.isSecureMode

isSecureMode(callback: AsyncCallback<boolean>): void


判断设备是否处于安全模式下,使用callback作为异步方法。


**系统能力**: SystemCapability.MiscServices.ScreenLock


80
**参数**
B
bmeangel 已提交
81

82
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
83 84 85
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示屏幕处于安全模式下,返回false表示屏幕当前不在安全模式下。 | 

86
**示例**
Z
zengyawen 已提交
87
  
A
aqxyjay 已提交
88
  ```js
Z
zengyawen 已提交
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
  screenlock.isSecureMode((err, data)=>{      
     if (err) {
          console.error('isSecureMode callback error -> ${JSON.stringify(err)}');
          return;    
     }
     console.info('isSecureMode callback success data -> ${JSON.stringify(err)}');
  });
  ```


## screenlock.isSecureMode

isSecureMode(): Promise<boolean>

判断设备是否处于安全模式下,使用Promise作为异步方法。

**系统能力**: SystemCapability.MiscServices.ScreenLock

107
**返回值**
B
bmeangel 已提交
108

Z
zengyawen 已提交
109 110 111 112
  | 类型 | 说明 | 
  | -------- | -------- |
  | Promise<boolean> | 以Promise形式返回结果。 | 

113
**示例**
Z
zengyawen 已提交
114

A
aqxyjay 已提交
115
  ```js
Z
zengyawen 已提交
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
  screenlock.isSecureMode().then((data) => {
      console.log('isSecureMode success: data->${JSON.stringify(data)}');
  }).catch((err) => {
      console.error('isSecureMode fail, promise: err->${JSON.stringify(err)}');
  });
  ```


## screenlock.unlockScreen

unlockScreen(callback: AsyncCallback<void>): void


解锁屏幕,使用callback作为异步方法。


**系统能力**: SystemCapability.MiscServices.ScreenLock


135
**参数**
B
bmeangel 已提交
136

137
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
138 139 140
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback<void> | 是 | 回调函数,失败时返回错误信息。 | 

141
**示例**
Z
zengyawen 已提交
142
  
A
aqxyjay 已提交
143
  ```js
144
  screenlock.unlockScreen((err) => {      
Z
zengyawen 已提交
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
     if (err) {
          console.error('unlockScreen callback error -> ${JSON.stringify(err)}');
          return;    
     }
     console.info('unlockScreen callback success');
  });
  ```


## screenlock.unlockScreen

unlockScreen(): Promise<void>

解锁屏幕,使用Promise作为异步方法。

**系统能力**: SystemCapability.MiscServices.ScreenLock

162
**返回值**
B
bmeangel 已提交
163

164
  | 类型 | 说明 | 
Z
zengyawen 已提交
165 166 167
  | -------- | -------- |
  | Promise<void> | 以Promise形式返回结果。 | 

168
**示例**
Z
zengyawen 已提交
169
  
A
aqxyjay 已提交
170
  ```js
Z
zengyawen 已提交
171 172 173 174 175 176
  screenlock.unlockScreen().then(() => {
      console.log('unlockScreen success');
  }).catch((err) => {
      console.error('unlockScreen fail, promise: err->${JSON.stringify(err)}');
  });
  ```
177

178 179 180

## screenlock.lockScreen<sup>9+</sup>

181
lockScreen(callback: AsyncCallback&lt;boolean&gt;): void
182 183 184 185 186 187 188


锁定屏幕,使用callback作为异步方法。


**系统能力**: SystemCapability.MiscServices.ScreenLock

189
**系统接口**:此接口为系统接口,三方应用不支持调用。
190 191

**参数**
B
bmeangel 已提交
192

193
  | 参数名 | 类型 | 必填 | 说明 | 
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数,失败时返回错误信息。 | 

**示例**
  
  ```js
  screenlock.lockScreen((err) => {      
     if (err) {
          console.error('lockScreen callback error -> ${JSON.stringify(err)}');
          return;    
     }
     console.info('lockScreen callback success');
  });
  ```

## screenlock.lockScreen<sup>9+</sup>

211
lockScreen(): Promise&lt;boolean&gt;
212 213 214 215 216

锁定屏幕,使用Promise作为异步方法。

**系统能力**: SystemCapability.MiscServices.ScreenLock

217
**系统接口**:此接口为系统接口,三方应用不支持调用。
218 219

**返回值**
B
bmeangel 已提交
220

221
  | 类型 | 说明 | 
222 223 224 225 226 227 228 229 230 231 232 233 234 235
  | -------- | -------- |
  | Promise&lt;void&gt; | 以Promise形式返回结果。 | 

**示例**
  
  ```js
  screenlock.lockScreen().then(() => {
      console.log('lockScreen success');
  }).catch((err) => {
      console.error('lockScreen fail, promise: err->${JSON.stringify(err)}');
  });
  ```


236 237 238 239 240 241 242 243
## screenlock.on<sup>9+</sup>

on(type: 'beginWakeUp' | 'endWakeUp' | 'beginScreenOn' | 'endScreenOn' | 'beginScreenOff' | 'endScreenOff' | 'unlockScreen' | 'beginExitAnimation', callback: Callback\<void\>): void

注册锁屏状态变化回调。

**系统能力**: SystemCapability.MiscServices.ScreenLock

244
**系统接口**:此接口为系统接口,三方应用不支持调用。
245

246
**参数**
B
bmeangel 已提交
247

248 249 250 251 252
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 设置事件类型。<br/>- type为"beginWakeUp",表示事件开始时开始唤醒。<br/>- type为"endWakeUp",表示事件结束时结束唤醒。<br/>- type为"beginScreenOn",表示事件开始时开始亮屏。<br/>- type为"endScreenOn",表示事件结束时结束亮屏。<br/>- type为"beginScreenOff",表示事件开始时开始灭屏。<br/>- type为"endScreenOff",表示事件结束时结束灭屏。<br/>- type为"unlockScreen",表示请求解锁。<br/>- type为"beginExitAnimation",表示动画开始退场。 |
  | callback | Callback\<void\> | 是 | 事件回调方法。 |

253
**示例**
254 255 256 257 258 259 260 261 262 263 264 265 266 267 268
  
  ```js
  screenlock.on('beginWakeUp', () => {
      console.log('beginWakeUp triggered');
  });
  ```

## screenlock.on<sup>9+</sup>

on(type: 'beginSleep' | 'endSleep' | 'changeUser', callback: Callback\<number\>): void

注册锁屏状态变化回调。

**系统能力**: SystemCapability.MiscServices.ScreenLock

269
**系统接口**:此接口为系统接口,三方应用不支持调用。
270

271
**参数**
B
bmeangel 已提交
272

273 274 275 276 277
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 设置事件类型。<br/>- type为"beginSleep",表示开始休眠。<br/>- type为"endSleep",表示结束休眠。<br/>- type为"changeUser",表示切换用户。 |
  | callback | Callback\<number\> | 是 | 事件回调方法。<br/>返回事件相应的状态。 |

278
**示例**
279 280 281 282 283 284 285 286 287 288 289 290 291 292
  
  ```js
  screenlock.on('beginSleep', (why) => {
      console.log('beginSleep triggered:' + why);
  });
  ```
## screenlock.on<sup>9+</sup>

on(type: 'screenlockEnabled', callback: Callback\<boolean\>): void

注册锁屏状态变化回调。

**系统能力**: SystemCapability.MiscServices.ScreenLock

293
**系统接口**:此接口为系统接口,三方应用不支持调用。
294

295
**参数**
B
bmeangel 已提交
296

297 298 299 300 301
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 设置事件类型。<br/>- type为"screenlockEnabled",表示锁屏是否启用。 |
  | callback | Callback\<boolean\> | 是 | 注册成功的回调。<br/>回调结果用true/false表示。 |

302
**示例**
303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318
  
  ```js
  screenlock.on('screenlockEnabled', (isEnabled) => {
      console.log('screenlockEnabled triggered, result:' + isEnabled);
  });
  ```

## screenlock.off<sup>9+</sup>

off(type: 'beginWakeUp' | 'endWakeUp' | 'beginScreenOn' | 'endScreenOn' | 'beginScreenOff' | 'endScreenOff' 
      | 'unlockScreen' | 'beginExitAnimation' | 'screenlockEnabled' | 'beginSleep' | 'endSleep' | 'changeUser', callback: Callback\<void\>): void

取消注册锁屏状态变化回调。

**系统能力**: SystemCapability.MiscServices.ScreenLock

319
**系统接口**:此接口为系统接口,三方应用不支持调用。
320

321
**参数**
B
bmeangel 已提交
322

323 324 325 326 327
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 设置事件类型。<br/>- type为"beginWakeUp",表示事件开始时开始唤醒。<br/>- type为"endWakeUp",表示事件结束时结束唤醒。<br/>- type为"beginScreenOn",表示事件开始时开始亮屏。<br/>- type为"endScreenOn",表示事件结束时结束亮屏。<br/>- type为"beginScreenOff",表示事件开始时开始灭屏。<br/>- type为"endScreenOff",表示事件结束时结束灭屏。<br/>- type为"unlockScreen",表示请求解锁。<br/>- type为"beginExitAnimation",表示动画开始退场。<br/>- type为"screenlockEnabled",表示锁屏是否启用。<br/>- type为"beginSleep",表示开始休眠。<br/>- type为"endSleep",表示结束休眠。<br/>- type为"changeUser",表示切换用户。 |
  | callback | Callback\<void\> | 是 | 注册成功的回调。 |

328
**示例**
329 330 331 332 333 334 335 336 337 338 339 340 341 342 343
  
  ```js
  screenlock.off('beginWakeUp', () => {
      console.log("callback");
  });
  ```

## screenlock.sendScreenLockEvent<sup>9+</sup>

sendScreenLockEvent(event: String, parameter: number, callback: AsyncCallback\<boolean\>): void

应用发送事件到锁屏服务,异步方法。

**系统能力**: SystemCapability.MiscServices.ScreenLock

344
**系统接口**:此接口为系统接口,三方应用不支持调用。
345

346
**参数**
B
bmeangel 已提交
347

348 349 350 351 352 353
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | event | String | 是 | 事件类型,支持如下取值:<br/>- "unlockScreenResult",表示解锁结果。<br/>- "screenDrawDone",表示屏幕绘制完成。 |
  | parameter | number | 是 | 解锁状态。<br/>- parameter为0,表示解锁成功。<br/>- parameter为1,表示解锁失败。<br/>- parameter为2,表示解锁取消。 |
  | callback | AsyncCallback\<boolean\> | 是 | 表示执行结果。 |

354
**示例**
355 356 357 358 359 360 361 362 363
  
  ```js
  screenlock.sendScreenLockEvent('unlockScreenResult', 0, (err, result) => {
      console.log('sending result:' + result);
  });
  ```

## screenlock.sendScreenLockEvent<sup>9+</sup>

364
sendScreenLockEvent(event: String, parameter: number): Promise\<boolean\>
365 366 367 368 369

应用发送事件到锁屏服务,异步方法。

**系统能力**: SystemCapability.MiscServices.ScreenLock

370
**系统接口**:此接口为系统接口,三方应用不支持调用。
371

372
**参数**
B
bmeangel 已提交
373

374 375 376 377 378
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | event | String | 是 | 事件类型,支持如下取值:<br/>- "unlockScreenResult",表示解锁结果。<br/>- "screenDrawDone",表示屏幕绘制完成。 |
  | parameter | number | 是 | 解锁状态。<br/>- parameter为0,表示解锁成功。<br/>- parameter为1,表示解锁失败。<br/>- parameter为2,表示解锁取消。 |

379
**返回值**
B
bmeangel 已提交
380

381 382 383 384
  | 类型 | 说明 | 
  | -------- | -------- |
  | Promise\<boolean\> | 以Promise形式返回执行结果。 | 

385
**示例**
386 387
  
  ```js
388
  screenlock.sendScreenLockEvent('unlockScreenResult', 0).then((result) => {
389 390 391
      console.log('sending result:' + result);
  });
  ```