You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Trusted Web Activity中保持屏幕常亮?

解决方案:可信标签页(Trusted Tabs)保持屏幕常亮

你的代码无效的核心原因是使用了错误的WakeLock类型:PARTIAL_WAKE_LOCK仅保证CPU持续运行,不会控制屏幕状态。以下是可行的修复方案:

方案1:使用正确的WakeLock类型(需权限)

步骤1:添加权限

在AndroidManifest.xml中声明WAKE_LOCK权限:

<uses-permission android:name="android.permission.WAKE_LOCK" />

步骤2:替换WakeLock代码并绑定生命周期

将原代码替换为控制屏幕的锁类型,并在Activity生命周期中正确管理锁的获取与释放:

private PowerManager.WakeLock wakeLock;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
    // SCREEN_BRIGHT_WAKE_LOCK 保持屏幕高亮,ACQUIRE_CAUSES_WAKEUP 可唤醒休眠的屏幕
    wakeLock = powerManager.newWakeLock(
        PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP,
        "TrustedTab:WakelockTag"
    );
}

@Override
protected void onResume() {
    super.onResume();
    // 10分钟超时自动释放
    wakeLock.acquire(10 * 60 * 1000L);
}

@Override
protected void onPause() {
    super.onPause();
    if (wakeLock.isHeld()) {
        wakeLock.release();
    }
}

方案2:使用FLAG_KEEP_SCREEN_ON(无需权限,推荐)

Android提供了更简洁的屏幕常亮方案,无需申请WAKE_LOCK权限,直接通过Window标记实现:

@Override
protected void onResume() {
    super.onResume();
    // 添加屏幕常亮标记
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}

@Override
protected void onPause() {
    super.onPause();
    // 移除标记,恢复正常屏幕休眠
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}

针对Trusted Tabs的特殊注意事项

如果你的Trusted Tabs是通过Chrome Custom Tabs实现,WebViewFallbackActivity仅在用户未安装Chrome时才会触发。若要覆盖Chrome内核的标签页,需在启动CustomTabsIntent时添加屏幕常亮标记:

CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
// 给Chrome的标签页添加屏幕常亮标记
customTabsIntent.intent.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
customTabsIntent.launchUrl(this, Uri.parse("你的可信URL"));

内容的提问来源于stack exchange,提问作者Alireza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 06:05:02