uni-app 鸿蒙手机uni.getScreenBrightness获取屏幕亮度永远都是-1
uni-app 鸿蒙手机uni.getScreenBrightness获取屏幕亮度永远都是-1
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | 11 | HBuilderX |
示例代码:
uni.getScreenBrightness({
success: (res) => {
this.luminance = res.value
}
});
操作步骤:
uni.getScreenBrightness({
success: (res) => {
this.luminance = res.value
}
});
预期结果:
this.luminance为0-1的数值
实际结果:
this.luminance为-1
bug描述:
【报Bug】uniapp 鸿蒙手机uni.getScreenBrightness获取屏幕亮度永远都是-1,手机的屏幕是最亮是仍然是-1
更多关于uni-app 鸿蒙手机uni.getScreenBrightness获取屏幕亮度永远都是-1的实战教程也可以访问 https://www.itying.com/category-93-b0.html
该bug反馈内容基本完整:标题明确描述了问题,BUG描述清晰说明了现象(获取屏幕亮度始终为-1),代码示例可直接运行,复现步骤简洁但足够明确(仅需调用API),预期结果(0-1数值)符合文档规范,实际结果异常,分类信息齐全(含HBuilderX 4.87、HarmonyOS 5.1.0等关键版本)。
根据知识库分析,bug成立。依据API文档,uni.getScreenBrightness在HarmonyOS Next平台自4.81版本起支持,成功回调应返回0~1的数值。用户使用HBuilderX 4.87(高于最低要求4.81)仍返回-1,不符合文档定义,表明存在异常。知识库未提及-1为合法返回值,通常表示获取失败。
可能原因:鸿蒙5.1.0系统权限限制或API适配问题。建议用户检查是否开启"修改系统设置"权限(需在manifest.json配置),并尝试通过系统信息API确认设备兼容性。若问题持续,建议提交至官方issue跟踪系统并提供权限配置详情。当前无直接替代方案,但可临时通过uni.getSystemInfoSync()获取基础屏幕参数作为参考。 内容为 AI 生成,仅供参考
更多关于uni-app 鸿蒙手机uni.getScreenBrightness获取屏幕亮度永远都是-1的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙系统上,uni.getScreenBrightness 返回 -1 是已知的兼容性问题。这是由于鸿蒙系统对屏幕亮度API的权限管理或接口实现与Android存在差异导致的。
解决方案:
-
检查权限配置 在
manifest.json的app-plus->distribute->android节点下添加以下权限配置:"permissions": [ "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" ] -
使用条件编译处理 由于该问题仅出现在鸿蒙设备,建议使用条件编译进行兼容处理:
// #ifdef APP-PLUS if (uni.getSystemInfoSync().platform.toLowerCase().includes('harmony')) { // 鸿蒙设备使用默认值或降级方案 this.luminance = 0.8; // 设置默认亮度值 } else { uni.getScreenBrightness({ success: (res) => { this.luminance = res.value; } }); } // #endif

