我有一些代码可以扩展服务并在Android上记录onSensorChanged(SensorEvent事件)加速计传感器读数.我希望能够记录这些传感器读数,即使设备关闭(我对电池寿命非常小心,并且在运行时显而易见).虽然屏幕上的日志工作正常,但在2.0.1 Motorola Droid和2.1 Nexus One上.
但是,当手机进入休眠状态时(通过按下电源按钮),屏幕关闭,onSensorChanged事件停止传送(每隔N次使用一次Log.e消息进行验证onSensorChanged).
该服务获取wakeLock以确保它在后台运行; 但是,它似乎没有任何影响.我已经尝试了各种各样的PowerManager.唤醒锁,但它们似乎都不重要.
_WakeLock = _PowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
_WakeLock.acquire();
Run Code Online (Sandbox Code Playgroud)
关于在屏幕关闭时你是否能真正从传感器获取数据的报道相互矛盾......任何人都对更现代版的Android(Eclair)和硬件有任何经验吗?
这似乎表明它在Cupcake中工作:http: //groups.google.com/group/android-developers/msg/a616773b12c2d9e5
PS:完全相同的代码在G1上的1.5中按预期工作.当屏幕关闭,应用程序在后台等时,记录继续.
我的应用程序只需要在屏幕关闭时检测设备的任何动作.
我知道加速度计用于此任务,但在所有设备中屏幕关闭时它不起作用.这是设备列表http://www.saltwebsites.com/2012/android-accelerometers-screen-off
那么有什么方法可以在屏幕关闭时获取加速计传感器数据,适用于所有设备?
或者有没有办法用另一个传感器检测运动?