【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;
}
}