@ohos.screenLock (锁屏管理)

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

说明:

本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import screenLock from '@ohos.screenLock';

EventType9+

定义系统事件类型。

系统能力: SystemCapability.MiscServices.ScreenLock

系统接口:此接口为系统接口。

事件类型 说明
beginWakeUp 表示设备开始唤醒。
endWakeUp 表示设备结束唤醒。
beginScreenOn 表示设备开始亮屏。
endScreenOn 表示设备结束亮屏。
beginScreenOff 表示设备开始灭屏。
endScreenOff 表示设备结束灭屏。
unlockScreen 表示请求屏幕解锁。
lockScreen 表示请求屏幕锁定。
beginExitAnimation 表示开始退场动画。
beginSleep 表示设备开始休眠。
endSleep 表示设备结束休眠。
changeUser 表示切换用户。
screenlockEnabled 表示锁屏是否启用。
serviceRestart 表示锁屏服务进行重启。

SystemEvent9+

定义系统事件回调参数结构。

系统能力: SystemCapability.MiscServices.ScreenLock

系统接口:此接口为系统接口

名称 类型 必填 说明
eventType EventType 系统事件类型。
params string 系统事件参数。

screenLock.isLocked9+

isLocked(): boolean

判断屏幕是否锁屏。

系统能力: SystemCapability.MiscServices.ScreenLock

系统接口:此接口为系统接口

返回值:

类型 说明
boolean 返回true表示屏幕已锁屏;返回false表示屏幕未锁屏。

示例:

let isLocked = screenLock.isLocked();

screenLock.unlock9+

unlock(callback: AsyncCallback<boolean>): void

解锁屏幕。使用callback异步回调。

系统能力: SystemCapability.MiscServices.ScreenLock

系统接口:此接口为系统接口

参数:

参数名 类型 必填 说明
callback AsyncCallback<boolean> 回调函数。返回true表示屏幕解锁成功;返回false表示取消解锁。

错误码

以下错误码的详细介绍请参见锁屏服务错误码

错误码ID 错误信息
13200002 the screenlock management service is abnormal.

示例:

import { BusinessError } from '@ohos.base';

screenLock.unlock((err: BusinessError, data: Boolean) => {
  if (err) {
    console.error(`Failed to unlock the screen, Code: ${err.code}, message: ${err.message}`);
    return;
  }
  console.info(`Succeeded in unlocking the screen. result: ${data}`);
});

screenLock.unlock9+

unlock(): Promise<boolean>

解锁屏幕。使用Promise异步回调。

系统能力: SystemCapability.MiscServices.ScreenLock

系统接口:此接口为系统接口

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示屏幕解锁成功;返回false表示取消解锁。

错误码

以下错误码的详细介绍请参见锁屏服务错误码

错误码ID 错误信息
13200002 the screenlock management service is abnormal.

示例:

import { BusinessError } from '@ohos.base';

screenLock.unlock().then((data: Boolean) => {
  console.info(`Succeeded in unlocking the screen. result: ${data}`);
}).catch((err: BusinessError) => {
  console.error(`Failed to unlock the screen, Code: ${err.code}, message: ${err.message}`);
});

screenLock.lock9+

lock(callback: AsyncCallback<boolean>): void

锁定屏幕。使用callback异步回调。

系统能力: SystemCapability.MiscServices.ScreenLock

需要权限: ohos.permission.ACCESS_SCREEN_LOCK_INNER

系统接口:此接口为系统接口

参数:

参数名 类型 必填 说明
callback AsyncCallback<boolean> 回调函数。返回true表示屏幕锁定成功;返回false表示屏幕锁定失败。

错误码

以下错误码的详细介绍请参见锁屏服务错误码

错误码ID 错误信息
13200002 the screenlock management service is abnormal.

示例:

import { BusinessError } from '@ohos.base';

screenLock.lock((err: BusinessError, data: Boolean) => {
  if (err) {
    console.error(`Failed to lock the screen, Code: ${err.code}, message: ${err.message}`);
    return;
  }
  console.info(`Succeeded in locking the screen. result: ${data}`);
});

screenLock.lock9+

lock(): Promise<boolean>

锁定屏幕。使用Promise异步回调。

系统能力: SystemCapability.MiscServices.ScreenLock

需要权限: ohos.permission.ACCESS_SCREEN_LOCK_INNER

系统接口:此接口为系统接口

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示屏幕锁定成功;返回false表示屏幕锁定失败。

错误码

以下错误码的详细介绍请参见锁屏服务错误码

错误码ID 错误信息
13200002 the screenlock management service is abnormal.

示例:

import { BusinessError } from '@ohos.base';

screenLock.lock().then((data: Boolean) => {
  console.info(`Succeeded in locking the screen. result: ${data}`);
}).catch((err: BusinessError) => {
  console.error(`Failed to lock the screen, Code: ${err.code}, message: ${err.message}`);
});

screenLock.onSystemEvent9+

onSystemEvent(callback: Callback<SystemEvent>): boolean

注册锁屏相关的系统事件,仅支持锁屏应用使用。

系统能力: SystemCapability.MiscServices.ScreenLock

需要权限: ohos.permission.ACCESS_SCREEN_LOCK_INNER

系统接口:此接口为系统接口

参数:

参数名 类型 必填 说明
callback Callback<SystemEvent> 锁屏相关的系统事件回调函数。

返回值:

类型 说明
boolean 返回true表示锁屏相关系统事件注册成功;返回false表示锁屏相关系统事件注册失败。

错误码

以下错误码的详细介绍请参见锁屏服务错误码

错误码ID 错误信息
13200002 the screenlock management service is abnormal.

示例:

try {
  let isSuccess = screenLock.onSystemEvent((event: screenLock.SystemEvent) => {
    console.log(`Succeeded in Registering the system event which related to screenlock. eventType: ${event.eventType}`)
  });
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to register the system event which related to screenlock, Code: ${error.code}, message: ${error.message}`)
}

screenLock.sendScreenLockEvent9+

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

应用发送事件到锁屏服务,仅支持锁屏应用使用。使用callback异步回调。

系统能力: SystemCapability.MiscServices.ScreenLock

需要权限: ohos.permission.ACCESS_SCREEN_LOCK_INNER

系统接口:此接口为系统接口

参数:

参数名 类型 必填 说明
event String 事件类型,支持如下取值:
- "unlockScreenResult",表示解锁结果。
- "lockScreenResult",表示锁屏结果。
- "screenDrawDone",表示屏幕绘制完成。
parameter number 事件结果。
- parameter为0,表示成功。例如解锁成功或锁屏成功。
- parameter为1,表示失败。例如解锁失败或锁屏失败。
- parameter为2,表示取消。例如锁屏取消或解锁取消。
callback AsyncCallback<boolean> 回调函数。返回true表示发送事件成功;返回false表示发送事件失败。

错误码

以下错误码的详细介绍请参见锁屏服务错误码

错误码ID 错误信息
13200002 the screenlock management service is abnormal.

示例:

import { BusinessError } from '@ohos.base';

screenLock.sendScreenLockEvent('unlockScreenResult', 0, (err: BusinessError, result: Boolean) => {
  if (err) {
    console.error(`Failed to send screenlock event, Code: ${err.code}, message: ${err.message}`);
    return;
  }
  console.info(`Succeeded in Sending screenlock event. result: ${result}`);
});

screenLock.sendScreenLockEvent9+

sendScreenLockEvent(event: String, parameter: number): Promise<boolean>

应用发送事件到锁屏服务,仅支持锁屏应用使用。使用Promise异步回调。

系统能力: SystemCapability.MiscServices.ScreenLock

需要权限: ohos.permission.ACCESS_SCREEN_LOCK_INNER

系统接口:此接口为系统接口

参数:

参数名 类型 必填 说明
event String 事件类型,支持如下取值:
- "unlockScreenResult",表示解锁结果。
- "lockScreenResult",表示锁屏结果。
- "screenDrawDone",表示屏幕绘制完成。
parameter number 事件结果。
- parameter为0,表示成功。例如解锁成功或锁屏成功。
- parameter为1,表示失败。例如解锁失败或锁屏失败。
- parameter为2,表示取消。例如锁屏取消或解锁取消。

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示发送事件成功;返回false表示发送事件失败。

错误码

以下错误码的详细介绍请参见锁屏服务错误码

错误码ID 错误信息
13200002 the screenlock management service is abnormal.

示例:

import { BusinessError } from '@ohos.base';

screenLock.sendScreenLockEvent('unlockScreenResult', 0).then((result: Boolean) => {
  console.info(`Succeeded in Sending screenlock event. result: ${result}`);
}).catch((err: BusinessError) => {
  console.error(`Failed to send screenlock event, Code: ${err.code}, message: ${err.message}`);
});

screenLock.isScreenLocked(deprecated)

isScreenLocked(callback: AsyncCallback<boolean>): void

判断屏幕是否锁屏。使用callback异步回调。

说明:

从API version 7开始支持,从API version 9开始废弃。

系统能力: SystemCapability.MiscServices.ScreenLock

参数:

参数名 类型 必填 说明
callback AsyncCallback<boolean> 回调函数。返回true表示屏幕已锁屏;返回false表示屏幕未锁屏。

示例:

import { BusinessError } from '@ohos.base';

screenLock.isScreenLocked((err: BusinessError, data: Boolean)=>{      
  if (err) {
    console.error(`Failed to obtain whether the screen is locked, Code: ${err.code}, message: ${err.message}`);
    return;    
  }
  console.info(`Succeeded in Obtaining whether the screen is locked. result: ${data}`);
});

screenLock.isScreenLocked(deprecated)

isScreenLocked(): Promise<boolean>

判断屏幕是否锁屏。使用Promise异步回调。

说明:

从API version 7开始支持,从API version 9开始废弃。

系统能力: SystemCapability.MiscServices.ScreenLock

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示屏幕已锁屏;返回false表示屏幕未锁屏。

示例:

import { BusinessError } from '@ohos.base';

screenLock.isScreenLocked().then((data: Boolean) => {
  console.info(`Succeeded in Obtaining whether the screen is locked. result: ${data}`);
}).catch((err: BusinessError) => {
  console.error(`Failed to obtain whether the screen is locked, Code: ${err.code}, message: ${err.message}`);
});

screenLock.isSecureMode(deprecated)

isSecureMode(callback: AsyncCallback<boolean>): void

判断当前设备的屏幕锁定是否安全(安全屏幕锁定意味着解锁屏幕需要密码、图案或其他用户身份识别)。使用callback异步回调。

说明:

从API version 7开始支持,从API version 9开始废弃。

系统能力: SystemCapability.MiscServices.ScreenLock

参数:

参数名 类型 必填 说明
callback AsyncCallback<boolean> 回调函数。返回true表示当前设备的屏幕锁定安全;返回false表示当前设备的屏幕锁定不安全。

示例:

import { BusinessError } from '@ohos.base';

screenLock.isSecureMode((err: BusinessError, data: Boolean)=>{
  if (err) {
    console.error(`Failed to obtain whether the device is in secure mode, Code: ${err.code}, message: ${err.message}`);
    return;
  }
  console.info(`Succeeded in Obtaining whether the device is in secure mode. result: ${data}`);
});

screenLock.isSecureMode(deprecated)

isSecureMode(): Promise<boolean>

判断当前设备的屏幕锁定是否安全(安全屏幕锁定意味着解锁屏幕需要密码、图案或其他用户身份识别)。使用Promise异步回调。

说明:

从API version 7开始支持,从API version 9开始废弃。

系统能力: SystemCapability.MiscServices.ScreenLock

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示当前设备的屏幕锁定安全;返回false表示当前设备的屏幕锁定不安全。

示例:

import { BusinessError } from '@ohos.base';

screenLock.isSecureMode().then((data: Boolean) => {
  console.info(`Succeeded in Obtaining whether the device is in secure mode. result: ${data}`);
}).catch((err: BusinessError) => {
  console.error(`Failed to obtain whether the device is in secure mode, Code: ${err.code}, message: ${err.message}`);
});

screenLock.unlockScreen(deprecated)

unlockScreen(callback: AsyncCallback<void>): void

解锁屏幕。使用callback异步回调。

说明:

从API version 7开始支持,从API version 9开始废弃。

系统能力: SystemCapability.MiscServices.ScreenLock

参数:

参数名 类型 必填 说明
callback AsyncCallback<void> 回调函数。解锁屏幕成功,err为undefined,否则为错误对象。

示例:

import { BusinessError } from '@ohos.base';

screenLock.unlockScreen((err: BusinessError) => {      
  if (err) {
    console.error(`Failed to unlock the screen, Code: ${err.code}, message: ${err.message}`);
    return;    
  }
  console.info(`Succeeded unlocking the screen.`);
});

screenLock.unlockScreen(deprecated)

unlockScreen(): Promise<void>

解锁屏幕。使用Promise异步回调。

说明:

从API version 7开始支持,从API version 9开始废弃。

系统能力: SystemCapability.MiscServices.ScreenLock

返回值:

类型 说明
Promise<void> Promise对象。无返回结果的Promise对象。

示例:

import { BusinessError } from '@ohos.base';

screenLock.unlockScreen().then(() => {
  console.info('Succeeded unlocking the screen.');
}).catch((err: BusinessError) => {
  console.error(`Failed to unlock the screen, Code: ${err.code}, message: ${err.message}`);
});