【问题标题】:Android Geofence Trigger Delay/FailureAndroid 地理围栏触发延迟/失败
【发布时间】:2016-07-12 11:34:56
【问题描述】:

我已经在我的 Android 应用中为 5-6 个位置注册了地理围栏。

我想要的 Geofence 事件是 Geofence Dwell,游荡延迟为 10 秒。

但是使用这个,事件有时会在某些 Android 设备中触发,而在其他设备中根本不会触发。

因此,出于测试目的,我考虑了以下列出的场景:

1) 我将游荡延迟减少到 3 秒。这次的结果更好,它在 5 台设备中触发了 4 台。

2) 另一个测试场景是,我注册了 Geofence Enter 事件(显然没有徘徊延迟),这次它在所有设备中触发。

理想情况下,我需要延迟 10 秒触发 Geofence Dwell 事件,因为我不会在 Enter 事件上接受频繁的 Geofence 通知。

请提出延迟较长的 Geofence Dwell 可能出现的问题。 任何帮助将不胜感激。

提前致谢。

【问题讨论】:

  • 仅用于测试目的 - 您可以尝试在前台使用 Google 地图在不同设备上进行测试。在这种情况下,您将能够知道问题在于地理围栏本身还是定位服务。
  • 同意pkuszwski。我的快速想法是该位置非常不准确,您的地理围栏如此之小,以至于该位置在 5 秒内跳出它。您使用多大的地理围栏?另外,您是在前台还是在后台进行测试?我发现不同的安卓设备在睡眠模式下检测地理围栏的能力存在巨大差异。

标签: android xamarin.android geofencing android-geofence


【解决方案1】:

停留触发延迟的典型原因:

  1. 位置适配器应打开并设置为高精度模式(从 系统设置)
  2. 要发生停留,手机应该在传输中,即移动(如果它连接到充电或 USB,android 将其识别为没有移动并延迟位置计算)
  3. 电池优化应该关闭(如果它打开,触发器将被释放)。
  4. 尝试手动触发谷歌地图或 Ola/Uber 等应用程序,强制设备获取准确的位置更新。如果此类应用位于前台,则触发器会更快、更准确。

如果你要求,只有10秒的停留时间,你不妨在后台线程上运行你自己的定时器逻辑;因为在现实世界中,设备将在 10 秒内真正移动多少米(您指定为地理围栏半径)?

【讨论】:

  • 部分手机默认启用所有应用的电池优化。这咬我!
猜你喜欢
  • 2017-11-15
  • 1970-01-01
  • 2015-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多