首先,我了解WakeLock和setKeepScreenOn。我的需求有点不同,我甚至不确定它是否可能。
我通过调用MotionEvent.obtain()
在一个线程中生成触摸事件,然后使用activity.dispatchTouchEvent()
将它们分派到顶级活动。这工作正常,但设备可以进入休眠状态,因为生成的触摸事件似乎不被识别为用户活动,并且手机可能由于不活动而进入睡眠状态。
是否有可能,如果是这样,如何告诉活动(或应用程序,或操作系统;无论需要告知什么)“嘿,有活动”所以它不会自动睡眠,但仍允许手机如果没有任何足够长的活动(即如果我的线程没有生成并发送触摸事件足够长的时间),则自动睡眠就像正常一样?基本上,我希望这些生成的触摸事件能够像真正的触摸事件一样让手机保持清醒状态。 WakeLock
和setKeepScreenOn()
的问题在于它们会强制屏幕保持打开状态,并且由于不活动而不允许它进入睡眠状态(或用户设备的默认行为)。