1# @ohos.runningLock (Runninglock锁) 2 3该模块主要提供RunningLock锁相关操作的接口,包括创建、查询、持锁、释放锁等操作。 4 5> **说明:** 6> 7> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```js 12import runningLock from '@ohos.runningLock'; 13``` 14 15## runningLock.isSupported<sup>9+</sup> 16 17isSupported(type: RunningLockType): boolean; 18 19查询系统是否支持该类型的锁。 20 21**系统能力:** SystemCapability.PowerManager.PowerManager.Core 22 23**参数:** 24 25| 参数名 | 类型 | 必填 | 说明 | 26| ------ | ----------------------------------- | ---- | -------------------- | 27| type | [RunningLockType](#runninglocktype) | 是 | 需要查询的锁的类型。 | 28 29**返回值:** 30 31| 类型 | 说明 | 32| ------- | --------------------------------------- | 33| boolean | 返回true表示支持,返回false表示不支持。 | 34 35**错误码:** 36 37以下错误码的详细介绍请参见[RunningLock锁错误码](errorcode-runninglock.md)。 38 39| 错误码ID | 错误信息 | 40|---------|---------| 41| 4900101 | If connecting to the service failed. | 42 43**示例:** 44 45```js 46try { 47 let isSupported = runningLock.isSupported(runningLock.RunningLockType.BACKGROUND); 48 console.info('BACKGROUND type supported: ' + isSupported); 49} catch(err) { 50 console.error('check supported failed, err: ' + err); 51} 52``` 53 54## runningLock.create<sup>9+</sup> 55 56create(name: string, type: RunningLockType, callback: AsyncCallback<RunningLock>): void 57 58创建RunningLock锁。 59 60**系统能力:** SystemCapability.PowerManager.PowerManager.Core 61 62**需要权限:** ohos.permission.RUNNING_LOCK 63 64**参数:** 65 66| 参数名 | 类型 | 必填 | 说明 | 67| -------- | ------------------------------------------ | ---- | ------------------------------------------------------------ | 68| name | string | 是 | 锁的名字。 | 69| type | [RunningLockType](#runninglocktype) | 是 | 要创建的锁的类型。 | 70| callback | AsyncCallback<[RunningLock](#runninglock)> | 是 | 回调函数。当创建锁成功,err为undefined,data为创建的RunningLock;否则为错误对象。 | 71 72**示例:** 73 74```js 75runningLock.create('running_lock_test', runningLock.RunningLockType.BACKGROUND, (err: Error, lock: runningLock.RunningLock) => { 76 if (typeof err === 'undefined') { 77 console.info('created running lock: ' + lock); 78 } else { 79 console.error('create running lock failed, err: ' + err); 80 } 81}); 82``` 83 84## runningLock.create<sup>9+</sup> 85 86create(name: string, type: RunningLockType): Promise<RunningLock> 87 88创建RunningLock锁。 89 90**系统能力:** SystemCapability.PowerManager.PowerManager.Core 91 92**需要权限:** ohos.permission.RUNNING_LOCK 93 94**参数:** 95 96| 参数名 | 类型 | 必填 | 说明 | 97| ------ | ----------------------------------- | ---- | ------------------ | 98| name | string | 是 | 锁的名字。 | 99| type | [RunningLockType](#runninglocktype) | 是 | 要创建的锁的类型。 | 100 101**返回值:** 102 103| 类型 | 说明 | 104| ------------------------------------------ | ------------------------------------ | 105| Promise<[RunningLock](#runninglock)> | Promise对象,返回RunningLock锁对象。 | 106 107**示例:** 108 109```js 110runningLock.create('running_lock_test', runningLock.RunningLockType.BACKGROUND, (err: Error, lock: runningLock.RunningLock) => { 111 if (typeof err === 'undefined') { 112 console.info('created running lock: ' + lock); 113 } else { 114 console.error('create running lock failed, err: ' + err); 115 } 116}); 117``` 118 119## runningLock.isRunningLockTypeSupported<sup>(deprecated)</sup> 120 121isRunningLockTypeSupported(type: RunningLockType, callback: AsyncCallback<boolean>): void 122 123> **说明:**<br>从API version 9开始不再维护,建议使用[runningLock.isSupported](#runninglockissupported9)替代。 124 125查询系统是否支持该类型的锁。使用callback异步回调。 126 127**系统能力:** SystemCapability.PowerManager.PowerManager.Core 128 129**参数:** 130 131| 参数名 | 类型 | 必填 | 说明 | 132| -------- | ----------------------------------- | ---- | ------------------------------------------------------------ | 133| type | [RunningLockType](#runninglocktype) | 是 | 需要查询的锁的类型。 | 134| callback | AsyncCallback<boolean> | 是 | 回调函数。当查询成功,err为undefined,data为获取到的支持情况,返回true表示支持,返回false表示不支持;否则为错误对象。 | 135 136**示例:** 137 138```js 139runningLock.isRunningLockTypeSupported(runningLock.RunningLockType.BACKGROUND, (err: Error, data: boolean) => { 140 if (typeof err === 'undefined') { 141 console.info('BACKGROUND lock support status: ' + data); 142 } else { 143 console.log('check BACKGROUND lock support status failed, err: ' + err); 144 } 145}); 146``` 147 148## runningLock.isRunningLockTypeSupported<sup>(deprecated)</sup> 149 150isRunningLockTypeSupported(type: RunningLockType): Promise<boolean> 151 152> **说明:**<br>从API version 9开始不再维护,建议使用[runningLock.isSupported](#runninglockissupported9)替代。 153 154查询系统是否支持该类型的锁。使用Promise异步回调。 155 156**系统能力:** SystemCapability.PowerManager.PowerManager.Core 157 158**参数:** 159 160| 参数名 | 类型 | 必填 | 说明 | 161| ------ | ----------------------------------- | ---- | -------------------- | 162| type | [RunningLockType](#runninglocktype) | 是 | 需要查询的锁的类型。 | 163 164**返回值:** 165 166| 类型 | 说明 | 167| ---------------------- | ---------------------------------------------------- | 168| Promise<boolean> | Promise对象。返回true表示支持;返回false表示不支持。 | 169 170**示例:** 171 172```js 173runningLock.isRunningLockTypeSupported(runningLock.RunningLockType.BACKGROUND) 174.then((data: boolean) => { 175 console.info('BACKGROUND lock support status: ' + data); 176}) 177.catch((err: Error) => { 178 console.log('check BACKGROUND lock support status failed, err: ' + err); 179}); 180``` 181 182## runningLock.createRunningLock<sup>(deprecated)</sup> 183 184createRunningLock(name: string, type: RunningLockType, callback: AsyncCallback<RunningLock>): void 185 186> **说明:**<br>从API version 9开始不再维护,建议使用[runningLock.create](#runninglockcreate9)替代。 187 188创建RunningLock锁。 189 190**系统能力:** SystemCapability.PowerManager.PowerManager.Core 191 192**需要权限:** ohos.permission.RUNNING_LOCK 193 194**参数:** 195 196| 参数名 | 类型 | 必填 | 说明 | 197| -------- | ------------------------------------------ | ---- | ------------------------------------------------------------ | 198| name | string | 是 | 锁的名字。 | 199| type | [RunningLockType](#runninglocktype) | 是 | 要创建的锁的类型。 | 200| callback | AsyncCallback<[RunningLock](#runninglock)> | 是 | 回调函数。当创建锁成功,err为undefined,data为创建的RunningLock;否则为错误对象。 | 201 202**示例:** 203 204```js 205runningLock.createRunningLock('running_lock_test', runningLock.RunningLockType.BACKGROUND, (err: Error, lock: runningLock.RunningLock) => { 206 if (typeof err === 'undefined') { 207 console.info('created running lock: ' + lock); 208 } else { 209 console.error('create running lock failed, err: ' + err); 210 } 211}); 212``` 213 214## runningLock.createRunningLock<sup>(deprecated)</sup> 215 216createRunningLock(name: string, type: RunningLockType): Promise<RunningLock> 217 218> **说明:**<br>从API version 9开始不再维护,建议使用[runningLock.create](#runninglockcreate9)替代。 219 220创建RunningLock锁。 221 222**系统能力:** SystemCapability.PowerManager.PowerManager.Core 223 224**需要权限:** ohos.permission.RUNNING_LOCK 225 226**参数:** 227 228| 参数名 | 类型 | 必填 | 说明 | 229| ------ | ----------------------------------- | ---- | ------------------ | 230| name | string | 是 | 锁的名字。 | 231| type | [RunningLockType](#runninglocktype) | 是 | 要创建的锁的类型。 | 232 233**返回值:** 234 235| 类型 | 说明 | 236| ------------------------------------------ | ------------------------------------ | 237| Promise<[RunningLock](#runninglock)> | Promise对象,返回RunningLock锁对象。 | 238 239**示例:** 240 241```js 242runningLock.createRunningLock('running_lock_test', runningLock.RunningLockType.BACKGROUND) 243.then((lock: runningLock.RunningLock) => { 244 console.info('created running lock: ' + lock); 245}) 246.catch((err: Error) => { 247 console.log('create running lock failed, err: ' + err); 248}); 249``` 250 251## RunningLock 252 253阻止系统休眠的锁。 254 255### hold<sup>9+</sup> 256 257hold(timeout: number): void 258 259锁定和持有RunningLock。 260 261**系统能力:** SystemCapability.PowerManager.PowerManager.Core 262 263**需要权限:** ohos.permission.RUNNING_LOCK 264 265**参数:** 266 267| 参数名 | 类型 | 必填 | 说明 | 268| ------- | ------ | ---- | ----------------------------------------- | 269| timeout | number | 是 | 锁定和持有RunningLock的时长,单位:毫秒。 | 270 271**错误码:** 272 273以下错误码的详细介绍请参见[RunningLock锁错误码](errorcode-runninglock.md)。 274 275| 错误码ID | 错误信息 | 276|---------|----------| 277| 4900101 | If connecting to the service failed. | 278 279**示例:** 280 281```js 282runningLock.create('running_lock_test', runningLock.RunningLockType.BACKGROUND, (err: Error, lock: runningLock.RunningLock) => { 283 if (typeof err === 'undefined') { 284 console.info('create running lock: ' + lock); 285 try { 286 lock.hold(500); 287 console.info('hold running lock success'); 288 } catch(err) { 289 console.error('hold running lock failed, err: ' + err); 290 } 291 } else { 292 console.error('create running lock failed, err: ' + err); 293 } 294}); 295``` 296 297### unhold<sup>9+</sup> 298 299unhold(): void 300 301释放RunningLock锁。 302 303**系统能力:** SystemCapability.PowerManager.PowerManager.Core 304 305**需要权限:** ohos.permission.RUNNING_LOCK 306 307**错误码:** 308 309以下错误码的详细介绍请参见[RunningLock锁错误码](errorcode-runninglock.md)。 310 311| 错误码ID | 错误信息 | 312|---------|----------| 313| 4900101 | If connecting to the service failed. | 314 315**示例:** 316 317```js 318runningLock.create('running_lock_test', runningLock.RunningLockType.BACKGROUND, (err: Error, lock: runningLock.RunningLock) => { 319 if (typeof err === 'undefined') { 320 console.info('create running lock: ' + lock); 321 try { 322 lock.unhold(); 323 console.info('unhold running lock success'); 324 } catch(err) { 325 console.error('unhold running lock failed, err: ' + err); 326 } 327 } else { 328 console.error('create running lock failed, err: ' + err); 329 } 330}); 331``` 332 333### isHolding<sup>9+</sup> 334 335isHolding(): boolean 336 337查询当前RunningLock是持有状态还是释放状态。 338 339**系统能力:** SystemCapability.PowerManager.PowerManager.Core 340 341**返回值:** 342 343| 类型 | 说明 | 344| ------- | ------------------------------------------------------------ | 345| boolean | 返回true表示当前RunningLock是持有状态,返回false表示当前RunningLock是释放状态。 | 346 347**错误码:** 348 349以下错误码的详细介绍请参见[RunningLock锁错误码](errorcode-runninglock.md)。 350 351| 错误码ID | 错误信息 | 352|---------|---------| 353| 4900101 | If connecting to the service failed. | 354 355**示例:** 356 357```js 358runningLock.create('running_lock_test', runningLock.RunningLockType.BACKGROUND, (err: Error, lock: runningLock.RunningLock) => { 359 if (typeof err === 'undefined') { 360 console.info('create running lock: ' + lock); 361 try { 362 let isHolding = lock.isHolding(); 363 console.info('check running lock holding status: ' + isHolding); 364 } catch(err) { 365 console.error('check running lock holding status failed, err: ' + err); 366 } 367 } else { 368 console.error('create running lock failed, err: ' + err); 369 } 370}); 371``` 372 373### lock<sup>(deprecated)</sup> 374 375lock(timeout: number): void 376 377> **说明:**<br>从API version 9开始不再维护,建议使用[RunningLock.hold](#hold9)替代。 378 379锁定和持有RunningLock。 380 381**系统能力:** SystemCapability.PowerManager.PowerManager.Core 382 383**需要权限:** ohos.permission.RUNNING_LOCK 384 385**参数:** 386 387| 参数名 | 类型 | 必填 | 说明 | 388| ------- | ------ | ---- | ----------------------------------------- | 389| timeout | number | 是 | 锁定和持有RunningLock的时长,单位:毫秒。 | 390 391**示例:** 392 393```js 394runningLock.createRunningLock('running_lock_test', runningLock.RunningLockType.BACKGROUND) 395.then((lock: runningLock.RunningLock) => { 396 lock.lock(500); 397 console.info('create running lock and lock success'); 398}) 399.catch((err: Error) => { 400 console.error('create running lock failed, err: ' + err); 401}); 402``` 403 404### unlock<sup>(deprecated)</sup> 405 406unlock(): void 407 408> **说明:**<br>从API version 9开始不再维护,建议使用[RunningLock.unhold](#unhold9)替代。 409 410释放RunningLock锁。 411 412**系统能力:** SystemCapability.PowerManager.PowerManager.Core 413 414**需要权限:** ohos.permission.RUNNING_LOCK 415 416**示例:** 417 418```js 419runningLock.createRunningLock('running_lock_test', runningLock.RunningLockType.BACKGROUND) 420.then((lock: runningLock.RunningLock) => { 421 lock.unlock(); 422 console.info('create running lock and unlock success'); 423}) 424.catch((err: Error) => { 425 console.error('create running lock failed, err: ' + err); 426}); 427``` 428 429### isUsed<sup>(deprecated)</sup> 430 431isUsed(): boolean 432 433> **说明:**<br>从API version 9开始不再维护,建议使用[RunningLock.isHolding](#isholding9)替代。 434 435查询当前RunningLock是持有状态还是释放状态。 436 437**系统能力:** SystemCapability.PowerManager.PowerManager.Core 438 439**返回值:** 440| 类型 | 说明 | 441| ------- | ------------------------------------------------------------ | 442| boolean | 返回true表示当前RunningLock是持有状态,返回false表示当前RunningLock是释放状态。 | 443 444**示例:** 445 446```js 447runningLock.createRunningLock('running_lock_test', runningLock.RunningLockType.BACKGROUND) 448.then((lock: runningLock.RunningLock) => { 449 let isUsed = lock.isUsed(); 450 console.info('check running lock used status: ' + isUsed); 451}) 452.catch((err: Error) => { 453 console.error('check running lock used status failed, err: ' + err); 454}); 455``` 456 457## RunningLockType 458 459RunningLock锁的类型。 460 461**系统能力:** SystemCapability.PowerManager.PowerManager.Core 462 463| 名称 | 值 | 说明 | 464| --------------------------------- | ---- | ------------------------------------------------------------ | 465| BACKGROUND<sup>(deprecated)</sup> | 1 | 阻止系统休眠的锁。<br>**说明:** 从API version 7开始支持,从API version 10开始废弃。 | 466| PROXIMITY_SCREEN_CONTROL | 2 | 接近光锁,使能接近光传感器,并根据传感器与障碍物的距离远近发起亮灭屏流程。 | 467