3

我在 android文章中读到了当我的手机屏幕关闭时无法检测到抖动事件。但这个问题与此不同。

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

但这在我的设备“开启”时工作正常。当我锁定我的设备时,它会停止工作。谁能详细说明背后的问题是什么?

4

2 回答 2

2

我认为这里的问题是,当您锁定设备时,它会进入睡眠模式。并且您的 ShakeListener 不会收到抖动事件。实现您想要的最佳方法是注册广播接收器以接收抖动事件。但据我所知,android 不提供这样的广播。另一种解决方案是获取部分 WakeLock。它会阻止android睡眠。但当然它会导致电池问题。也看看这个线程:Android accelerometer not working when screen is closed

于 2013-04-23T15:00:56.870 回答
0

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

于 2013-11-13T17:58:41.843 回答