HarmonyOS 鸿蒙Next中设置休眠策略不生效

HarmonyOS 鸿蒙Next中设置休眠策略不生效 mdm应用在设置设备休眠策略时,已经设置了设备的ui没有更新,也不生效

我的代码如下:

let json =’{“powerScene”:0,“powerPolicy”:{“powerPolicyAction”:0,“delayTime”:18000000}}’

deviceSettings.setValue(wantTemp, 'powerPolicy', json);

不知道怎样设置才能生效?

5 回复

大佬你申请权限了吗:ohos.permission.ENTERPRISE_MANAGE_SETTINGS

更多关于HarmonyOS 鸿蒙Next中设置休眠策略不生效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


有权限,我打印的hilog中也是调用成功的

唯独就是不生效

在HarmonyOS Next中,休眠策略设置不生效常见原因包括:未正确申请ohos.permission.POWER_MANAGER权限、使用的PowerManager API(如acquireWakeLock)参数类型不匹配(PARTIAL_WAKE_LOCKFULL_WAKE_LOCK等)、或锁未在后台线程中正确持有。另需检查应用是否被系统限制后台运行,部分设备策略会覆盖应用设置。

你的代码问题在于将格式化的 JSON 字符串直接作为设置值,而未使用 JSON.parse 解析为对象。deviceSettings.setValue 接口要求传入的是设置键值对,但 powerPolicy 这类复杂策略通常需结构化对象,而非字符串。

修正示例:

import { deviceSettings } from '@kit.MDMKit';
// 其它必要导入...

let wantTemp = { /* 你的 Want 对象 */ };
let powerPolicyObj = {
  "powerScene": 0,
  "powerPolicy": {
    "powerPolicyAction": 0, // 0 代表设置休眠策略
    "delayTime": 18000000    // 延时 18 秒后休眠(毫秒)
  }
};
deviceSettings.setValue(wantTemp, 'powerPolicy', powerPolicyObj);

如果仍不生效,检查 delayTime 是否在设备策略允许范围内(通常最小值 15 秒),并确认应用已获得 ohos.permission.ENTERPRISE_MANAGE_SETTINGS 设备管理权限,且正确注册了 DeviceAdmin 扩展。

回到顶部