uni-app uni.setKeepScreenOn屏幕常亮安卓APP中不管用不起作用

uni-app uni.setKeepScreenOn屏幕常亮安卓APP中不管用不起作用

示例代码:

// 保持屏幕常亮
uni.setKeepScreenOn({
keepScreenOn: true,
success: function (res) {
console.log(res);
},
fail: function (err) {
console.log(err);
}
});

操作步骤:

安卓pad

预期结果:

不息屏

实际结果:

息屏

bug描述:

uni.setKeepScreenOn设置成功了,success回调也走了,但是pad还是会自动息屏。


| 信息类别       | 信息内容             |
|----------------|----------------------|
| 产品分类       | uniapp/App           |
| PC开发环境     | Windows              |
| PC系统版本号   | Windows11            |
| HBuilderX类型  | 正式                 |
| HBuilderX版本  | 4.76                 |
| 手机系统       | Android              |
| 手机系统版本号 | Android 15           |
| 手机厂商       | 小米                 |
| 手机机型       | 小米pad7             |
| 页面类型       | vue                  |
| vue版本        | vue3                 |
| 打包方式       | 云端                 |
| 项目创建方式   | HBuilderX            |

更多关于uni-app uni.setKeepScreenOn屏幕常亮安卓APP中不管用不起作用的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

解决了,安卓需要添加权限配置 <uses-permission android:name="android.permission.WAKE_LOCK" /> 然后重新打基座,文档上没说有点坑

更多关于uni-app uni.setKeepScreenOn屏幕常亮安卓APP中不管用不起作用的实战教程也可以访问 https://www.itying.com/category-93-b0.html


解决了,安卓需要添加权限配置 <uses-permission android:name="android.permission.WAKE_LOCK" /> 然后重新打基座,文档上没说有点坑

大佬如果是鸿蒙app呢 知道怎么搞吗

根据您提供的信息,这个问题通常与Android系统的电源管理策略有关。以下是几个可能的原因和解决方案:

  1. 系统级限制:某些Android厂商(特别是小米)会在系统层面限制应用保持屏幕常亮的能力。建议检查系统设置中的“电池优化”选项,将您的应用添加到白名单中。

  2. 生命周期问题:确保uni.setKeepScreenOn在页面显示时调用,而不是在页面隐藏或应用进入后台时调用。建议在onShow生命周期中执行此操作。

  3. 权限问题:虽然uni-app没有明确要求特殊权限,但某些Android版本可能需要WAKE_LOCK权限。可以在manifest.json中配置:

"app-plus": {
    "permissions": [
        "android.permission.WAKE_LOCK"
    ]
}
  1. 硬件限制:部分设备在电量过低时会强制忽略屏幕常亮设置。

  2. 代码执行时机:建议在页面加载完成后立即调用,可以尝试在onReadyonShow中执行:

onShow() {
    uni.setKeepScreenOn({
        keepScreenOn: true
    })
}
回到顶部