当我的手机处于锁定状态时如何检测震动事件

3
我阅读了这篇文章在Android中无法检测到屏幕关闭时的摇晃事件,但这个问题与我的不同。
我创建了一个应用程序,当我摇动设备时会说出时间(使用TextToSpeach API)。为此,我创建了一个“Service”,其中注册了“ShakeListener”。当我摇动设备时,它会说出当前时间。
但是,只有当我的设备处于“开启”状态时,它才能正常工作。当我锁定设备时,它就停止工作了。有人可以解释一下背后的问题吗?
2个回答

2
我认为问题在于当您锁定设备时,它会进入睡眠模式。因此,您的ShakeListener无法接收到摇晃事件。实现您想要的最佳方法是注册广播接收器以接收摇晃事件。但据我所知,Android不提供此类广播。另一种解决方案是获得部分WakeLock。它将防止Android进入休眠状态。但当然它会导致电池问题。还可以查看此主题:Android accelerometer not working when screen is turned off

有没有解决这个问题的办法? - Chintan Rathod

0

可能在您修补一些内核实现之前,您无法收到此通知。 Android不会广播这种通知。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接