屏幕关闭时,Android工作方式适用于非工作传感器

时间:2011-07-20 23:36:03

标签: android accelerometer sensor

[编辑:删除所有提及的Android版本 - 所有版本的Android都存在此问题]

背景:当屏幕关闭时,许多Android手机不会通过在屏幕关闭时调用onSensorChanged()来为Accelerometer读数的应用程序提供更新。在S.O.上讨论了这种行为。并在此进一步记录 http://code.google.com/p/android/issues/detail?id=3708

在某些手机(Nexus S,Droid X2,...)上,加速度计值仅在值发生重大变化时提供。例如,坐在桌子上,每分钟可能有一次或零次更新

为了生成跨手机型号的强大代码,我如何区分每个屏幕缺少更新事件,以及每次非移动缺少更新?我应该维护手机型号的数据库吗?

2 个答案:

答案 0 :(得分:0)

这很难察觉。 Android的API提供了一种控制唤醒锁的方法。但是制造商已经做了一项可怕的工作,将其实施到操作系统中。只是可怕的。您需要获取PARTIAL_WAKE_LOCK以在屏幕关闭时保持手机CPU运行。

然而,并非所有设备都使用此功能并且不会响应 - 有一半/一半响应 - 有些响应很好。

阅读上面的评论后,我可以告诉你,我用过的2.3+的大多数设备仍然没有实现部分唤醒锁。

我个人不会依赖制造商控制的东西,因为市场是分散的。我试图通过不同的解决方案找到一种方法来获得我正在寻找的功能。

希望这有帮助。

答案 1 :(得分:0)

我一直在寻找这个问题的解决方案两天了。但仍然没有找到任何有用的东西。

在这篇文章here中,Bruno Albuquerque有一些东西可以帮助摩托罗拉手机,但它不是通用的。

我相信@jjNford对制造商的指责是对的,你可以发布任何相关信息吗?

Here是关于自2009年以来的错误报告