uni-app uni.setScreenBrightness 设置后 手机亮度不可调节 整体变暗

uni-app uni.setScreenBrightness 设置后 手机亮度不可调节 整体变暗

信息类别 详情
产品分类 uniapp/App
PC开发环境 Windows
PC系统版本 Windows 11 家庭中文版
开发工具 HBuilderX
工具版本 3.99
手机系统 Android
手机版本 Android 10
手机厂商 OPPO
手机型号 oppoR17
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

openPop(val, lotno) {  
    // #ifdef APP-PLUS  
    let that = this;  
    uni.getScreenBrightness({  
        success(res) {  
            that.brightValue = res.value;  
        }  
    })  
    // #endif  
    this.show = true;  
    this.val = val;  
    this.lotno = lotno;  
    setTimeout(() => {  
        // #ifdef APP-PLUS  
        let value = 0.8;  
        if (this.brightValue >= 0.8) {  
            value = this.brightValue;  
        }  

        uni.setScreenBrightness({  
            value: value,  
            success() {  

            }  
        })  
        uni.setKeepScreenOn({  
            keepScreenOn: false,  
            success() {  
                console.log('已取消屏幕亮度锁定');  
            }  
        });  
        // #endif  
        this.qrshow = true;  
    }, 100)  
},  
closePop() {  
    // #ifdef APP-PLUS  

    uni.setScreenBrightness({  
        value: this.brightValue,  
        success() {  

        }  
    })  
    uni.setKeepScreenOn({  
        keepScreenOn: false,  
        success() {  
            console.log('已取消屏幕亮度锁定');  
        }  
    });  

    // #endif  
    this.qrshow = false;  
    setTimeout(() => {  
        this.show = false;  
    }, 100)  
},  

操作步骤:

打开弹窗 获取亮度并缓存 set亮度为0.8 关闭弹窗 set亮度为获取值

预期结果:

回复到之前的亮度

实际结果:

整体亮度 变暗 且 手机不可调节

bug描述:

打开弹窗 获取亮度 并且 调节亮度 为0.8 关闭弹窗 设置亮度为 获取值 情况:关闭后手机不可调节亮度


更多关于uni-app uni.setScreenBrightness 设置后 手机亮度不可调节 整体变暗的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

这个文档官方有个回答 https://ask.dcloud.net.cn/question/132234

更多关于uni-app uni.setScreenBrightness 设置后 手机亮度不可调节 整体变暗的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在使用 uni.setScreenBrightness 设置屏幕亮度后,如果出现手机亮度不可调节或整体变暗的情况,可能是由于以下原因导致的:

1. uni.setScreenBrightness 设置的值过低

uni.setScreenBrightness 的参数 value 是一个介于 01 之间的值,表示屏幕亮度的百分比。如果你设置的 value 值过低(例如 0.1 或更低),可能会导致屏幕变得非常暗,甚至看起来像是不可调节。

解决方法: 确保你设置的亮度值在合理范围内,例如 0.5 或更高,看看是否恢复正常。

uni.setScreenBrightness({
    value: 0.5, // 设置亮度为50%
    success: function () {
        console.log('屏幕亮度设置成功');
    },
    fail: function (err) {
        console.log('屏幕亮度设置失败', err);
    }
});

2. 系统亮度调节被锁定

在某些情况下,调用 uni.setScreenBrightness 后,系统可能会锁定亮度调节功能,导致用户无法手动调节亮度。

解决方法: 你可以在设置亮度后,手动调用 uni.setKeepScreenOn 来解除屏幕锁定状态。

uni.setKeepScreenOn({
    keepScreenOn: false // 解除屏幕常亮状态
});

3. 系统或设备问题

在某些设备或系统版本上,可能会出现兼容性问题,导致 uni.setScreenBrightness 设置后亮度调节失效。

解决方法: 尝试在不同的设备或系统版本上测试,或者检查是否有系统更新可以解决该问题。

4. 代码逻辑问题

检查你的代码逻辑,确保在设置亮度后没有其他操作影响到亮度的调节。

5. 使用 uni.getScreenBrightness 检查当前亮度

你可以使用 uni.getScreenBrightness 来获取当前屏幕亮度的值,确保设置的值符合预期。

uni.getScreenBrightness({
    success: function (res) {
        console.log('当前屏幕亮度:', res.value);
    },
    fail: function (err) {
        console.log('获取屏幕亮度失败', err);
    }
});

6. 恢复默认亮度

如果以上方法都无法解决问题,你可以尝试将亮度恢复到默认值,看看是否恢复正常。

uni.setScreenBrightness({
    value: 0.5, // 恢复默认亮度
    success: function () {
        console.log('屏幕亮度恢复成功');
    },
    fail: function (err) {
        console.log('屏幕亮度恢复失败', err);
    }
});
回到顶部