uni-app 安卓平台 uni.getScreenBrightness 获取屏幕亮度始终返回-1
uni-app 安卓平台 uni.getScreenBrightness 获取屏幕亮度始终返回-1
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 10 | HBuilderX |
### 操作步骤:
uni.getScreenBrightness({
success: function (res) {
console.log('屏幕亮度值:' + res.value);
uni.showModal({
title: '提示',
content: '屏幕亮度值:' + res.value,
showCancel: false,
confirmText: '知道了'
});
}
});
预期结果:
不知道为什么
### 实际结果:
获取不到屏幕亮度,
bug描述:
安卓两部手机一部安卓10一部安卓6.1获取屏幕亮度都返回-1,ios正常
已反馈给相关人员排查,已加分,感谢您的反馈!
谢谢加分,辛苦了
终于修复了吗?
HBuilderX Alpha 3.4.6 已修复
知道了,谢谢
我也遇到这个问题了,有的时候有,有的时候就是-1,不知道怎么解决了
比如我想让屏幕变量设置成1,关闭页面时候设置成-1 就可以还原原来的亮度
回复 老哥教教我: 没想到还能这么用,这个也很好,实用
兄弟 现在可以正常使用? HBuilderX 3.4.15.20220610 还是存在获取不到的问题呀
在使用 uni-app
开发安卓应用时,如果你调用 uni.getScreenBrightness
方法获取屏幕亮度时始终返回 -1
,这通常意味着获取屏幕亮度的操作失败了。以下是一些可能的原因和解决方法:
1. 权限问题
在安卓平台上,获取屏幕亮度需要特定的权限。确保你的应用已经获取了以下权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
你可以在 manifest.json
文件中添加这些权限:
{
"app-plus": {
"android": {
"permissions": [
"WRITE_SETTINGS",
"WRITE_SECURE_SETTINGS"
]
}
}
}
2. 系统限制
某些安卓系统可能对获取屏幕亮度的操作进行了限制,尤其是在较新的安卓版本中。你可以尝试在不同的设备上测试,看看是否是特定设备或系统版本的问题。
3. 代码问题
确保你调用 uni.getScreenBrightness
的代码是正确的。以下是一个示例:
uni.getScreenBrightness({
success: function (res) {
console.log('屏幕亮度值:' + res.value);
},
fail: function (err) {
console.log('获取屏幕亮度失败:' + err.errMsg);
}
});
4. 插件或框架问题
如果你使用的是第三方插件或框架,可能存在兼容性问题。尝试更新 uni-app
和相关插件到最新版本,或者查看插件的文档和社区是否有类似问题的解决方案。
5. 模拟器问题
如果你是在模拟器上测试,某些模拟器可能不支持获取屏幕亮度的操作。尝试在真机上测试。
6. 系统设置
某些安卓设备可能允许用户禁用应用对系统设置的访问权限。检查设备的系统设置,确保你的应用有权限访问系统设置。
7. 其他解决方案
如果以上方法都无法解决问题,你可以尝试使用原生开发的方式获取屏幕亮度,或者使用其他第三方库来实现这一功能。
示例代码
以下是一个完整的示例代码,展示了如何在 uni-app
中获取屏幕亮度:
uni.getScreenBrightness({
success: function (res) {
console.log('屏幕亮度值:' + res.value);
},
fail: function (err) {
console.log('获取屏幕亮度失败:' + err.errMsg);
}
});