使用uni.setScreenBrightness(OBJECT)来设置屏幕亮度,在标准基座上运行没有问题,但是打包后运行,无效
有一种回答是选择权限
请确认打包时勾选了Android权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
但是打包后测试 还是没有解决问题,最后变通了一种办法去解决
其他问题
在页面周期的onShow中设置屏幕亮度uni.setScreenBrightness会造成应用生命周期里的onShow和onHide循环执行,造成应用其他功能无法使用 这个需要增加一个变量去判断 使onshow里的代码只执行一次
先说打包后亮度不生效问题
![](https://img-blog.csdnimg.cn/img_convert/f84ceddc84a1782eac50c4150c527c11.webp?x-oss-process=image/format,png)
image.png
![](https://img-blog.csdnimg.cn/img_convert/ea109d07e259cd79ad58433663dcd7e4.webp?x-oss-process=image/format,png)
image.png
![](https://img-blog.csdnimg.cn/img_convert/87ea447439b89b1c67486719ec2c852e.webp?x-oss-process=image/format,png)
image.png
红色箭头所示为关键代码,使用uni.getScreenBrightness打包后失效 只能改为h5+方法去解决
具体项目根据自己需求来写 不需要截图里这么多代码
如果只是切换到指定页面使屏幕亮度变化,返回恢复正常亮度,只需要再onshow onhide做相应处理即可。
可以多打断点查看输出找到问题所在进行解决。有问题请留言(虽然我也不会看)