首页 文章

Android可靠的定期gps跟踪

提问于
浏览
1

Many similar posts exist but none of them contains the doze mode problematic with alarmmanager and short periodic updates.

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

要求:

  • 主要在gps的帮助下定期更新位置,相对精确每分钟1次( - 10秒)

  • 适用于较新的Android设备(包括打瞌睡)

实际想法:

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

问题:

  • The alarmmanager is not reliable anymore since the functionality of doze . 当设备处于打盹状态时,不会发送警报管理器 .

  • 屏幕关闭时,我没有收到gps的位置更新

有关此问题的其他信息:

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

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

Question:

我需要哪些组件来实现这一目标?前台服务,Alarmmanager,Wakelock?

1 回答

  • 0

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

相关问题