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

Wear OS应用如何在屏幕被遮挡时保持唤醒状态

Wear OS 运动计时应用屏蔽遮挡锁屏方案

你当前使用的FLAG_KEEP_SCREEN_ON仅能在设备未被遮挡时保持亮屏,无法覆盖Wear OS的遮挡锁屏机制。要解决这个问题,可通过PowerManager唤醒锁实现,具体步骤如下:

  • 添加权限:在AndroidManifest.xml中声明唤醒锁权限:

    <uses-permission android:name="android.permission.WAKE_LOCK" />
    
  • 实现唤醒锁逻辑:在Activity中初始化并管理唤醒锁,配合原有亮屏Flag使用:

    private var wakeLock: PowerManager.WakeLock? = null
    
    override fun onStart() {
        super.onStart()
        // 保持屏幕常亮基础配置
        window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
        
        // 获取PowerManager实例并创建唤醒锁
        val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager
        // SCREEN_BRIGHT_WAKE_LOCK:保持屏幕高亮,不受遮挡传感器影响
        wakeLock = powerManager.newWakeLock(
            PowerManager.SCREEN_BRIGHT_WAKE_LOCK or PowerManager.ACQUIRE_CAUSES_WAKEUP,
            "MyTimerApp:WakeLockTag"
        )
        wakeLock?.acquire()
    }
    
    override fun onStop() {
        super.onStop()
        // 必须释放唤醒锁,避免不必要的电池消耗
        wakeLock?.release()
        wakeLock = null
        // 移除亮屏Flag
        window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
    }
    
  • 关键说明:

    • SCREEN_BRIGHT_WAKE_LOCK类型的唤醒锁会强制保持屏幕高亮,无视遮挡传感器的触发信号,正好解决你遇到的衣袖遮挡锁屏问题。
    • 务必在Activity停止时释放唤醒锁,结合你提到的"短时间使用+可关闭设置",建议在计时器结束、用户退出页面或关闭功能时立即执行释放操作,控制电池消耗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:15:36