HarmonyOS鸿蒙Next中请问大佬们有没有系统级锁屏api

HarmonyOS鸿蒙Next中请问大佬们有没有系统级锁屏api 想做一款消费级的一键锁屏App,我知道官方有一款,但无法实现想要的功能,请问调用什么接口可以实现系统级锁屏?开发文档里找不到类似api

16 回复

【解决方案】

开发者你好,系统级锁屏受限开放,只有[@ohos.screenLock (锁屏管理)](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-screen-lock)接口,但是这些接口从 API 9 开始废弃(面向系统应用的新接口未开放给三方应用),暂未开放三方应用直接触发锁屏的能力。涉及安全规范:禁止应用绕过用户主动操作强制锁屏。

更多关于HarmonyOS鸿蒙Next中请问大佬们有没有系统级锁屏api的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


受限系统权限开放原因,只有@ohos.screenLock (锁屏管理)接口,但是这些接口从 API 9 开始废弃(面向系统应用的新接口未开放给三方应用),暂未开放三方应用直接触发锁屏的能力。涉及安全规范:禁止应用绕过用户主动操作强制锁屏。

不会开放的,如果开放后有人做出个锁屏病毒软件怎么办。

现在有双击锁屏、1x1和1x2的系统锁屏功能,我觉得已经能满足大部分人需要了。

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-screen-lock#screenlockunlockscreendeprecated

但是只有系统应用可以调用

  1. import screenLock from ‘@ohos.screenLock’;
  2. screenLock.unlockScreen()

这个好像只有unlock没有lock,很恼火,

不管有没有,目前只有系统应用可以调用,非系统应用无法使用该API,

锁屏卡片开发指导:锁屏卡片开发指导,但是内容感觉不能满足你的消费级锁屏

我理解是需要先开发一款App然后再接入锁屏卡片,就能实现点击卡片一键锁屏,

开发一个app用于一键锁屏!!!不是有双击桌面空白处就能锁屏吗?另外还有一个锁屏键可以调出来,如果采用你的想法那不就是倒退了吗,

是的我知道官方有方案,但我这边发现了一个小痛点,官方方案无法解决,

没有该功能,不对外开放。

请问下大佬,这是官方公开明确的信息吗还是?

可以确定是没有这种Api,因为之前我也研究过,现在官方提供一键锁屏app可以在应用市场下载,另一个是锁屏1x1和1x2卡片,双指捏合桌面–卡片,搜索锁屏可以添加。

HarmonyOS Next提供了锁屏管理接口。开发者可通过@ohos.screenLock模块调用系统锁屏功能,主要接口为screenLock.lock(),可立即触发设备锁屏。该API需要申请ohos.permission.MANAGE_SCREEN_LOCK权限,并在配置文件中声明。调用后会直接进入系统锁屏界面,无需其他操作。

在HarmonyOS Next中,可以通过PowerManager服务中的lockScreen()方法实现系统级锁屏。具体步骤如下:

  1. module.json5配置文件中申请ohos.permission.MANAGE_POWER权限:
{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.MANAGE_POWER",
        "reason": "lock screen",
        "usedScene": {
          "abilities": ["EntryAbility"],
          "when": "always"
        }
      }
    ]
  }
}
  1. 在代码中调用锁屏接口:
import powerManager from '@ohos.powerManager';

// 获取PowerManager实例
let powerManager = powerManager.getPowerManager();

// 执行锁屏
try {
  powerManager.lockScreen();
} catch (error) {
  console.error(`Lock screen failed, error: ${error}`);
}

注意:此权限为系统权限,普通应用无法直接获取。建议通过扩展能力的方式,在系统应用或特权应用中实现该功能,再通过跨应用调用提供服务。

回到顶部