uni-app 安卓端设置屏幕亮度后 手机自带亮度调节功能失效
uni-app 安卓端设置屏幕亮度后 手机自带亮度调节功能失效
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows 10 专业版 | 21H1 | HBuilderX |
Android | 6.0 |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:版本 Windows 10 专业版 版本号 21H1 安装日期 2022/2/17 操作系统内部版本 19043.1586 体验 Windows Feature Experience Pack 120.2212.4170.0
HBuilderX类型:正式
HBuilderX版本号:3.3.13
手机系统:Android
手机系统版本号:Android 6.0
手机厂商:OPPO
手机机型:oppo R9s
页面类型:vue
vue版本:vue2
打包方式:云端
项目创建方式:HBuilderX
示例代码:
```javascript
onHide() {
// 调整手机亮度
uni.setScreenBrightness({
value: 0.1
})
},
onLoad() {
uni.setScreenBrightness({
value: 0.5
})
},
操作步骤:
onHide() {
// 调整手机亮度
uni.setScreenBrightness({
value: 0.1
})
},
onLoad() {
uni.setScreenBrightness({
value: 0.5
})
},
预期结果:
安卓端 设置屏幕亮度后 再通过手机自己的亮度调节功能设置亮度 APP会随着亮度设置而设置
实际结果:
安卓端 设置屏幕亮度后 再通过手机自己的亮度调节功能设置亮度 APP不会随着亮度设置而设置
bug描述:
安卓端 设置屏幕亮度后 再通过手机自己的亮度调节功能设置亮度 APP 没有效果 ios正常,但安卓端没效果
更多关于uni-app 安卓端设置屏幕亮度后 手机自带亮度调节功能失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
我们公司的所有安卓都不行 oppo 、华为
给个复现的demo,我看下
在 UniApp 中,如果你通过代码设置了屏幕亮度,可能会导致手机自带的亮度调节功能失效。这是因为你通过代码直接修改了屏幕亮度,覆盖了系统自带的亮度调节功能。
解决方法
-
恢复系统亮度调节功能
在设置亮度后,可以通过调用系统 API 恢复系统自带的亮度调节功能。具体来说,你可以将亮度设置为一个特殊值(如-1
),表示恢复系统默认的亮度调节行为。// 设置屏幕亮度 uni.setScreenBrightness({ value: 0.5, // 设置亮度为 50% success: function () { console.log('亮度设置成功'); }, fail: function (err) { console.log('亮度设置失败', err); } }); // 恢复系统亮度调节功能 uni.setScreenBrightness({ value: -1, // 恢复系统默认亮度调节 success: function () { console.log('恢复系统亮度调节成功'); }, fail: function (err) { console.log('恢复系统亮度调节失败', err); } });
-
监听系统亮度变化
如果你希望在应用内监听系统亮度的变化,可以使用uni.onWindowResize
或uni.onAccelerometerChange
等 API 来监听屏幕亮度的变化,并根据需要调整应用内的亮度设置。uni.onWindowResize(function (res) { console.log('窗口大小变化', res); // 在这里可以根据窗口大小变化来调整亮度 });
-
手动同步亮度设置
如果你希望手动同步系统亮度和应用内的亮度设置,可以在应用启动时获取系统亮度,并根据需要调整应用内的亮度设置。uni.getScreenBrightness({ success: function (res) { console.log('当前屏幕亮度', res.value); // 在这里可以根据系统亮度调整应用内的亮度设置 }, fail: function (err) { console.log('获取屏幕亮度失败', err); } });