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 回复

只有这个手机这样么?

更多关于uni-app 安卓端设置屏幕亮度后 手机自带亮度调节功能失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


我们公司的所有安卓都不行 oppo 、华为

给个复现的demo,我看下

在 UniApp 中,如果你通过代码设置了屏幕亮度,可能会导致手机自带的亮度调节功能失效。这是因为你通过代码直接修改了屏幕亮度,覆盖了系统自带的亮度调节功能。

解决方法

  1. 恢复系统亮度调节功能
    在设置亮度后,可以通过调用系统 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);
        }
    });
    
  2. 监听系统亮度变化
    如果你希望在应用内监听系统亮度的变化,可以使用 uni.onWindowResizeuni.onAccelerometerChange 等 API 来监听屏幕亮度的变化,并根据需要调整应用内的亮度设置。

    uni.onWindowResize(function (res) {
        console.log('窗口大小变化', res);
        // 在这里可以根据窗口大小变化来调整亮度
    });
    
  3. 手动同步亮度设置
    如果你希望手动同步系统亮度和应用内的亮度设置,可以在应用启动时获取系统亮度,并根据需要调整应用内的亮度设置。

    uni.getScreenBrightness({
        success: function (res) {
            console.log('当前屏幕亮度', res.value);
            // 在这里可以根据系统亮度调整应用内的亮度设置
        },
        fail: function (err) {
            console.log('获取屏幕亮度失败', err);
        }
    });
回到顶部