我正在开发一个应用程序,它应该检测用户的移动,当他停止超过 5 分钟时,它应该发出警报。我能够使用加速度计检测运动,但问题是屏幕关闭时它不起作用。我也尝试过使用部分wakeLock。重新注册加速度计也不起作用(这应该是摩托罗拉设备的解决方法)。
也许我可以使用 GPS 来做到这一点,并在 GPS 速度低于 1m/s 且持续时间超过 5 分钟时发出警报,但我不确定屏幕关闭时是否会收到 GPS 更新。
因此,我需要一种解决方案,即使大多数设备上的屏幕关闭,也能检测用户的移动。关于如何实现这一点有什么想法吗?
感谢转发
您应该获得部分wake lock
对于这种操作。使用 PowerManager 类。
像这样的事情:
PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
PowerManager.WakeLock lock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "SensorRead");
lock.acquire();
您还需要此权限AndroidManifest.xml
:
<uses-permission android:name="android.permission.WAKE_LOCK" />
推荐使用lock.release();
当你完成你的工作时。
EDIT:
还有,这个article可能对你有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)