4

每当我的一项活动正在运行并且手机已插入电源时,我想保持屏幕开启。我知道 Wakelocks 很棘手,所以我正在寻找有关如何实现此特定目标的示例或一些文档。

4

2 回答 2

12

不要为此使用唤醒锁 - 只需WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON根据设备当前是否插入来设置和清除窗口标志。您可以使用Activity.getWindow().addFlags().

所以代码是

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
于 2010-10-17T03:08:16.067 回答
4

AWakeLock并不是那么棘手,只需确保在您调用时检查它是否已被持有,acquire()并确保在您调用时它已被持有release()。您还需要确保您拥有android.permission.WAKE_LOCK清单文件中定义的权限。

如果您只想在手机插入时获取 WakeLock,您可以注册一个 watch BroadcastReceiverfor the android.intent.action.ACTION_POWER_CONNECTEDand android.intent.action.ACTION_POWER_DISCONNECTEDintents。我自己没有使用过这些,因此在这些意图真正起作用之前,您可能需要获得一些应用程序权限。

于 2010-10-16T18:40:00.613 回答