Android可靠的定期gps跟踪

时间:2016-08-12 17:24:41

标签: android gps android-wake-lock

存在许多类似的帖子,但其中没有一个包含警报管理器和短期定期更新的打盹模式。

目标:在GPS的帮助下接收定期中断以更新位置

要求:

  • 主要在gps的帮助下定期更新位置,相对精确每分钟1次(+ - 10秒)
  • 适用于较新的Android设备(包括打瞌睡)

实际想法:

  • 在服务中使用警报管理器,即" Start_Sticky"。警报管理器每隔一分钟发送一次广播,通知gps接收器读取该位置并将其发送到服务器。 Alarmmanager配置了AlarmManager.ELAPSED_REALTIME_WAKEUP。

问题:

  • 由于打瞌睡的功能,警报管理员不再可靠。当设备处于打盹状态时,不会发送警报管理器。
  • 屏幕关闭时,我没有收到gps的位置更新

有关此问题的其他信息:

  • 有关于此的多个信息,例如link,但似乎通过打瞌睡警报管理器不再可靠 - 意味着此解决方案不再可用。

注意:setAndAllowWhileIdle()和setExactAndAllowWhileIdle()都不能每个应用每9分钟触发一次警报。 src

问题:

我需要哪些组件来实现这一目标? Foreground Service,Alarmmanager,Wakelock?

1 个答案:

答案 0 :(得分:0)

使用推送通知并将其设置为高优先级,这可能是在深度睡眠模式下保持应用程序运行以进行gps跟踪的最可靠方法。我设置了30分钟的间隔并继续发送通知,电话没有唤醒,屏幕也没有打开,但是我确实注意到GPS仍然可以正常工作。