Closed nian0114 closed 5 months ago
以下代码可以试下
// 使用PARTIAL_WAKE_LOCK
val flags = PowerManager.PARTIAL_WAKE_LOCK or PowerManager.ACQUIRE_CAUSES_WAKEUP
wakeLock = powerManager.newWakeLock(flags, "ScreenStream::MJPEG-Tag").apply { acquire() }
// 在Activity中设置窗口标志
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
以下代码可以试下
// 使用PARTIAL_WAKE_LOCK val flags = PowerManager.PARTIAL_WAKE_LOCK or PowerManager.ACQUIRE_CAUSES_WAKEUP wakeLock = powerManager.newWakeLock(flags, "ScreenStream::MJPEG-Tag").apply { acquire() } // 在Activity中设置窗口标志 window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
感谢回复 经过测试PARTIAL_WAKE_LOCK也是无效,他可以保证后台唤醒但是还是会触发android的锁屏机制。 window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) 这个能够在APP前台的情况下保证屏幕点亮。
我的系统是MIUI,锁定时间设置为30s。 我的APP,它本身能阻止进入锁屏,保持屏幕唤醒状态。 但是在插件启用的情况下,通过Power键关闭屏幕,屏幕唤醒锁失效了,30s后会进入锁屏状态。
屏幕唤醒锁代码如下 val flags = PowerManager.SCREEN_DIM_WAKE_LOCK or PowerManager.ACQUIRE_CAUSES_WAKEUP wakeLock = powerManager.newWakeLock(flags, "ScreenStream::MJPEG-Tag").apply { acquire() }
刚查看了下API的说明 //如果持有该类型的wakelock锁,则按Power键灭屏后,即使允许屏幕、按键灯灭,也不会释放该锁,CPU不会进入休眠状态 public static final int PARTIAL_WAKE_LOCK; //Deprecated,如果持有该类型的wakelock锁,则使屏幕保持亮/Dim的状态,键盘灯允许灭,按Power键灭屏后,会立即释放 public static final int SCREEN_DIM_WAKE_LOCK; //Deprecated,如果持有该类型的wakelock锁,则使屏幕保持亮的状态,键盘灯允许灭,按Power键灭屏后,会立即释放 public static final int SCREEN_BRIGHT_WAKE_LOCK //Deprecated,如果持有该类型的wakelock锁,则使屏幕、键盘灯都保持亮,按Power键灭屏后,会立即释放 public static final int FULL_WAKE_LOCK
SCREEN_DIM_WAKE_LOCK遇到POWER键会释放,这个能否把时间捕获然后处理了,让SCREEN_DIM_WAKE_LOCK依然生效,如果可以的话,请作者赐教。感谢