uni-app在xiaomi Hhyper os上获取亮度不正确
uni-app在xiaomi Hhyper os上获取亮度不正确
示例代码:
uni.getScreenBrightness({
success: function(res) {
resolve(res.value)
},
fail(err) {
reject()
}
});
操作步骤:
直接将代码在xiaomi Hhyper os 系统上执行
预期结果:
预期得到当前系统屏幕亮度正确的值
实际结果:
得到是0.022222223这个值,导致无法在返回页面的时候恢复原先的屏幕亮度
bug描述:
xiaomi Hhyper os 系统通过uni.getScreenBrightness 获取的屏幕亮度值是0.022222223 在其他系统上可以正常
| 信息类别 | 信息内容 |
|------------------|--------------------|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC开发环境版本号 | windows 10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 4.14 |
| 手机系统 | Android |
| 手机系统版本号 | Android 13 |
| 手机厂商 | 小米 |
| 手机机型 | 小米10 xiaomi Hhyper os |
| 页面类型 | vue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app在xiaomi Hhyper os上获取亮度不正确的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app在xiaomi Hhyper os上获取亮度不正确的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app
开发中,如果你在小米的 Hyper OS 上遇到获取亮度不正确的问题,可能是由于系统兼容性或权限问题导致的。以下是一些可能的解决方案和排查步骤:
1. 检查权限
确保应用已经获取了 WRITE_SETTINGS
权限,因为获取和设置屏幕亮度需要此权限。
-
在
manifest.json
中声明权限:{ "permissions": [ "android.permission.WRITE_SETTINGS" ] }
-
在代码中动态请求权限: 使用
uni.authorize
或uni.getSetting
方法请求权限。
2. 使用原生 API 获取亮度
如果 uni-app
的 API 无法正确获取亮度,可以尝试通过原生 Android API 获取亮度值。
- 在
uni-app
中使用plus.android
调用原生方法:const context = plus.android.importClass('android.content.Context'); const settings = plus.android.importClass('android.provider.Settings'); const resolver = plus.android.runtimeMainActivity().getContentResolver(); const brightness = settings.System.getInt(resolver, settings.System.SCREEN_BRIGHTNESS); console.log('当前亮度值:', brightness);
3. 检查系统差异
小米的 Hyper OS 可能对亮度设置做了定制化处理,导致 uni-app
的标准 API 无法正确获取亮度值。可以尝试以下方法:
- 使用
uni.getSystemInfo
获取设备信息,检查是否有系统相关的限制。 - 查阅小米 Hyper OS 的开发者文档,了解其亮度管理的特殊机制。
4. 调试和日志
通过调试和日志输出,检查获取亮度时的返回值是否正确。
- 使用
console.log
打印获取的亮度值:uni.getScreenBrightness({ success: (res) => { console.log('亮度值:', res.value); }, fail: (err) => { console.error('获取亮度失败:', err); } });