【HarmonyOS】应用设置屏幕常亮
一、问题背景:
金融类或钱包场景的应用APP,对于付款码,扫一扫等场景都会对屏幕设置常亮。防止屏幕长时间不操作,自动息屏。
目前这种场景的需求也是非常有必要的,也是行业内默认的处理方式。
那屏幕常亮在鸿蒙中如何实现呢?
二、解决方案:
1.首先需要获取当前屏幕窗口对象,在鸿蒙中,一般是以窗口为最小操作舞台。类似常亮,隐私窗口(防止录屏截屏),窗口大小等设置都是操作窗口。
2.之后调用setWindowKeepScreenOn设置屏幕是否常亮,默认是不会常亮。
三、DEMO示例:
import { window } from '@kit.ArkUI';/*** 设备管理*/
export class DeviceMgr {private TAG: string = 'DeviceMgr';private static mDeviceMgr: DeviceMgr | null = null;public static Ins(): DeviceMgr {if (!DeviceMgr.mDeviceMgr) {DeviceMgr.mDeviceMgr = new DeviceMgr();}return DeviceMgr.mDeviceMgr;}/*** 设置屏幕是否常亮* @param isON true*/public async setKeepScreenState(isON: boolean){let win: window.Window = await window.getLastWindow(getContext());await win.setWindowKeepScreenOn(isON);}/*** 当前窗口屏幕是否长亮* @returns */public async isKeepScreenState(): Promise<boolean> {let win: window.Window = await window.getLastWindow(getContext());return win.getWindowProperties().isKeepScreenOn;}
}