js-apis-screen-lock.md 10.8 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

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

30
**示例**
Z
zengyawen 已提交
31
  
A
aqxyjay 已提交
32
  ```js
Z
zengyawen 已提交
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
  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

51
**返回值**
Z
zengyawen 已提交
52 53 54 55
  | 类型 | 说明 | 
  | -------- | -------- |
  | Promise<boolean> | 以Promise形式返回结果。 | 

56
**示例**
Z
zengyawen 已提交
57

A
aqxyjay 已提交
58
  ```js
Z
zengyawen 已提交
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
  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


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

83
**示例**
Z
zengyawen 已提交
84
  
A
aqxyjay 已提交
85
  ```js
Z
zengyawen 已提交
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
  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

104
**返回值**
Z
zengyawen 已提交
105 106 107 108
  | 类型 | 说明 | 
  | -------- | -------- |
  | Promise<boolean> | 以Promise形式返回结果。 | 

109
**示例**
Z
zengyawen 已提交
110

A
aqxyjay 已提交
111
  ```js
Z
zengyawen 已提交
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
  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


131
**参数**
Z
zengyawen 已提交
132 133 134 135
    | 参数名 | 类型 | 必填 | 说明 | 
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback<void> | 是 | 回调函数,失败时返回错误信息。 | 

136
**示例**
Z
zengyawen 已提交
137
  
A
aqxyjay 已提交
138
  ```js
139
  screenlock.unlockScreen((err) => {      
Z
zengyawen 已提交
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
     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

157
**返回值**
Z
zengyawen 已提交
158 159 160 161
    | 类型 | 说明 | 
  | -------- | -------- |
  | Promise<void> | 以Promise形式返回结果。 | 

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

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

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

注册锁屏状态变化回调。

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

180 181
**系统API**:此接口为系统接口,三方应用不支持调用。

182
**参数**
183 184 185 186 187
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | 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\> | 是 | 事件回调方法。 |

188
**示例**
189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
  
  ```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

204 205
**系统API**:此接口为系统接口,三方应用不支持调用。

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

212
**示例**
213 214 215 216 217 218 219 220 221 222 223 224 225 226
  
  ```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

227 228
**系统API**:此接口为系统接口,三方应用不支持调用。

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

235
**示例**
236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251
  
  ```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

252 253
**系统API**:此接口为系统接口,三方应用不支持调用。

254
**参数**
255 256 257 258 259
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | 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\> | 是 | 注册成功的回调。 |

260
**示例**
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275
  
  ```js
  screenlock.off('beginWakeUp', () => {
      console.log("callback");
  });
  ```

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

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

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

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

276 277
**系统API**:此接口为系统接口,三方应用不支持调用。

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

285
**示例**
286 287 288 289 290 291 292 293 294
  
  ```js
  screenlock.sendScreenLockEvent('unlockScreenResult', 0, (err, result) => {
      console.log('sending result:' + result);
  });
  ```

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

295
sendScreenLockEvent(event: String, parameter: number): Promise\<boolean\>
296 297 298 299 300

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

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

301 302
**系统API**:此接口为系统接口,三方应用不支持调用。

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

309
**返回值**
310 311 312 313
  | 类型 | 说明 | 
  | -------- | -------- |
  | Promise\<boolean\> | 以Promise形式返回执行结果。 | 

314
**示例**
315 316
  
  ```js
317
  screenlock.sendScreenLockEvent('unlockScreenResult', 0).then((result) => {
318 319 320
      console.log('sending result:' + result);
  });
  ```