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

时间:2013-04-23 13:01:52

标签: android service shake

我读了这篇unable to detect shake event when my phones screen is off in android文章。但这个问题与此不同。

我在摇动设备时创建了一个说(使用TextToSpeach API)时间的应用程序。为此我创建了一个“服务”,其中“ShakeListener”已注册。当我摇动设备时,它会说出当前时间。

但是当我的设备处于“开启状态”时,此功能正常。当我锁定设备时,它会停止工作。任何人都可以详细说明背后的问题是什么?

2 个答案:

答案 0 :(得分:2)

我认为这里的问题是当你锁定设备时,它会进入睡眠模式。而且你的ShakeListener没有收到震动事件。实现您想要的最佳方式是注册广播接收器以接收震动事件。但据我所知,android并没有提供这样的广播。另一种解决方案是采用部分WakeLock。它会阻止android进入睡眠状态。但当然这会导致电池问题。另请查看此主题:Android accelerometer not working when screen is turned off

答案 1 :(得分:0)

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