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正常

12 回复

已反馈给相关人员排查,已加分,感谢您的反馈!


谢谢加分,辛苦了

终于修复了吗?

HBuilderX Alpha 3.4.6 已修复

知道了,谢谢

我也遇到这个问题了,有的时候有,有的时候就是-1,不知道怎么解决了

如果想设置成屏幕原来亮度 设置成-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);
  }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!