HarmonyOS 鸿蒙Next开发案例 | 保持屏幕常亮不息屏
HarmonyOS 鸿蒙Next开发案例 | 保持屏幕常亮不息屏
场景说明
在使用开发板进行应用开发调试时,不操作屏幕一段时间后,屏幕会熄屏变黑,再操作时需要再次点亮屏幕,耗费时间不利于调试。本例将介绍如何通过窗口管理相关接口实现屏幕常亮。
效果呈现
本示例最终效果如下:
运行环境
本例基于以下环境开发,开发者也可以基于其他适配的版本进行开发:
- IDE:DevEco Studio 3.1.1 Release
- SDK:3.1.0(API 9)
实现思路
通过Window的setWindowKeepScreenOn
方法,在需要时控制屏幕是否常亮,并通过Window的getWindowProperties().isKeepScreenOn
查看窗口属性中屏幕常亮的状态。
开发步骤
-
构建简易界面,用于显示当前屏幕常亮的状态,并绘制按钮用于设置常亮和取消常亮。
-
获取应用上下文并通过其获取到当前窗口实例,通过窗口实例的
setWindowKeepScreenOn
方法控制屏幕是否常亮,并通过getWindowProperties
获取窗口属性,从而查看属性中屏幕常亮状态isKeepScreenOn
的取值。
完整代码
通过上述步骤可以完成整个示例的开发,完整代码如下:
import common from '@ohos.app.ability.common';
import window from '@ohos.window';
@Component
struct KeepScreenOn {
@State message: string = '常亮状态 : '
@State isScreenOn: boolean = false
private context: common.BaseContext = getContext(this) as common.BaseContext
async keepScreenOn(status) {
let windowClass = await window.getLastWindow(this.context) //获取窗口实例
await windowClass.setWindowKeepScreenOn(status) //设置窗口常亮或取消
this.isScreenOn = await windowClass.getWindowProperties().isKeepScreenOn//查看屏幕常亮状态
}
build() {
Row() {
Column() {
Text(this.message + this.isScreenOn)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button('设置常亮')
.fontSize(16)
.height(50)
.width(100)
.borderRadius(10)
.margin({top:20})
.backgroundColor('#A4AE77')
.onClick(() =>{
this.keepScreenOn(true)
})
Button('取消常亮')
.fontSize(16)
.height(50)
.width(100)
.borderRadius(10)
.margin({top:20})
.backgroundColor('#A4AE77')
.onClick(() =>{
this.keepScreenOn(false)
})
}
.width('100%')
}
.height('100%')
}
}
更多关于HarmonyOS 鸿蒙Next开发案例 | 保持屏幕常亮不息屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
姓名: John Doe
职位: 软件工程师
简介: 具有超过10年经验的软件开发专家,专注于Web技术和后端服务。