HarmonyOS 鸿蒙Next 是否有API可以设置禁止屏幕自动休眠
HarmonyOS 鸿蒙Next 是否有API可以设置禁止屏幕自动休眠 APP在运行过程中,希望屏幕不自动休眠,harmony 是否有相关API提供给app来设置 禁止屏幕进入休眠。
例如Android可以通过设置
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
来实现禁止休眠和关闭禁止休眠。
请问鸿蒙上是否有相关API呢?
两种方式
-
把deviceSettings.setValue里面的value值设为0,即可禁止休眠,参考文档如下: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-enterprise-devicesettings-V5#devicesettingssetvalue。但该api需要权限ohos.permission.ENTERPRISE_MANAGE_SETTINGS,仅对MDM应用开放。
-
可以使用setWindowKeepScreenOn实现,参考链接: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#windowgetlastwindow9
不休眠的视频例子:
import { BusinessError } from '@kit.BasicServicesKit';
import { window } from '@kit.ArkUI';
@Entry
@Component
struct VideoPage4 {
@State message: string = 'Hello World';
@State videoSrc: Resource = $rawfile('video.mp4')
@State previewUri: Resource = $r('app.media.startIcon')
@State curRate: PlaybackSpeed = PlaybackSpeed.Speed_Forward_1_00_X
@State isAutoPlay: boolean = false
@State showControls: boolean = true
controller: VideoController = new VideoController()
@State isKeepScreenOn: boolean = true;
setWindowKeep() {
try {
let windowClass: window.Window | undefined = undefined;
let promise = window.getLastWindow(getContext());
promise.then((data) => {
windowClass = data;
windowClass.setWindowKeepScreenOn(this.isKeepScreenOn, (err: BusinessError) => {
const errCode: number = err.code;
if (errCode) {
console.error(`Failed to set the screen to be always on. Cause code: ${err.code}, message: ${err.message}`);
return;
}
console.info('Succeeded in setting the screen to be always on.');
});
})
} catch (exception) {
console.error(`Failed to set the screen to be always on. Cause code: ${exception.code}, message: ${exception.message}`);
}
}
build() {
Column(){
Video({
src: this.videoSrc,
previewUri: this.previewUri,
currentProgressRate: this.curRate,
controller: this.controller
})
.width('100%')
.height(600)
.autoPlay(this.isAutoPlay)
.controls(this.showControls)
.onStart(() => {
console.info('onStart')
})
.onPause(() => {
console.info('onPause')
})
.onFinish(() => {
console.info('onFinish')
})
.onError(() => {
console.info('onError')
})
.onStop(() => {
console.info('onStop')
})
Row() {
Button('start').onClick(() => {
this.controller.start() // 开始播放
this.setWindowKeep()
}).margin(2)
Button('pause').onClick(() => {
this.controller.pause() // 暂停播放
}).margin(2)
Button('stop').onClick(() => {
this.controller.stop() // 结束播放
}).margin(2)
Button('reset').onClick(() => {
this.controller.reset() // 重置AVPlayer
}).margin(2)
Button('setTime').onClick(() => {
this.controller.setCurrentTime(10, SeekMode.Accurate) // 精准跳转到视频的10s位置
}).margin(2)
}
}
}
}
更多关于HarmonyOS 鸿蒙Next 是否有API可以设置禁止屏幕自动休眠的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
关于HarmonyOS 鸿蒙Next是否有API可以设置禁止屏幕自动休眠的问题,答案是肯定的。HarmonyOS提供了相应的API来控制屏幕休眠行为。
在HarmonyOS中,你可以通过调用系统提供的API来设置屏幕保持常亮状态,即禁止屏幕自动休眠。这通常涉及到访问系统的电源管理或显示管理服务。具体实现时,你可能需要获取相应的权限,并调用特定的API接口来修改屏幕休眠设置。
不过,需要注意的是,由于HarmonyOS的版本更新和API的迭代,具体的API名称和使用方式可能会有所变化。因此,在开发过程中,建议查阅最新的HarmonyOS开发者文档或API参考手册,以确保使用正确的API来实现所需的功能。
此外,虽然HarmonyOS提供了这样的API,但在实际应用中还需考虑用户体验和系统功耗等因素,合理使用屏幕常亮功能。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html