确保android不断检索传感器数据

时间:2019-01-24 17:10:32

标签: android android-jobscheduler android-wake-lock android-fusedlocation foreground-service

我正在开发一个跟踪行程的应用程序。搜索此问题后,我得出结论,实现此目标(连续跟踪用户的位置)的最佳方法是使用前台服务。在某些情况下效果很好,但在其他情况下(即使关闭了DOZE),我得到了一些时间间隔,其中电话完全处于静止状态,并且我停止获取传感器数据(加速度计或来自融合位置提供程序的位置)。 / p>

由于我引入了新的限制(当手机处于空闲状态时没有传感器数据等),因此在Android 9设备上尝试该问题时,这个问题变得更加严重。为了解决此问题,或者至少尝试减少其影响,我考虑过实施唤醒锁/作业/警报,仅以1分钟的频率触发,并且什么也不做。这可能是一个非常糟糕的主意,但我已经为此苦苦挣扎很长时间了,我不知道该怎么办。

非常感谢您!

2 个答案:

答案 0 :(得分:1)

来自您的帖子

  

我得到了一些时间间隔,在这段时间内手机完全静止不动,并且停止获取传感器数据(加速度计或融合位置提供者的位置)。

如果电话静止不动,为什么要从跟踪目的中获取任何位置或传感器数据?

答案 1 :(得分:0)

使用WakeLock。这是它的预期目的。

编辑

为了澄清:您的设备很可能因为要进入睡眠状态而停止收集数据。在某些情况下,此行为可能归因于Doze,但您提到您正在使用前台服务。根据{{​​3}}中Dianne Hackborn的评论,具有运行前台服务的应用不受Doze的限制。而且,根据this postWakeLocks是使设备保持清醒状态的合适方法。