如何在操作后保持 Android 屏幕打开

How to keep Android screen on after an action

我发誓有一行简单的代码可以解决这个问题,但我现在找不到。

在我的应用程序中,我使用了一块自定义硬件进行输入。我收到事件(在 BLE 上)但不是按键或鼠标操作。我想要做的是每个动作都应该让屏幕保持清醒,就像我触摸了屏幕一样(所以,无论当前超时是什么都会被重置)

明确一点——我不想使用

android:keepScreenOn="true"

因为这会使屏幕永久打开。我也不想成为 运行 一群唤醒锁 - 我几乎可以肯定有一个简单的命令可以重置屏幕超时 - 它是什么?

如果您不想使用唤醒锁,一些选项:

  • 使用 SnackBar 短暂显示一条 pop-up 消息。
  • 使用 FCM 触发高优先级消息通知。
  • 以同样的方式创建 foreground service that runs while your BLE device is allowing user input. Or use WorkManager

一个更严格的选项,它要求您的应用程序 device admin, is to use DevicePolicyManager 设置最长锁定时间,理想情况下保存之前的值并在用户输入完成后恢复。