- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在制作一个应用程序,可以计算您在地理围栏内停留的时间。当检测到进入事件时获取时间戳,并将其与接收到退出事件时获取的时间戳进行比较。
这在夏季对我的 Galaxy Nexus 运行良好,但从 11 月(2013 年)开始,我注意到开始出现一些奇怪的行为。我刚刚开始使用新的 Nexus 5 作为我的测试设备,现在我发现在我还在地理围栏内时发送了退出事件。地理围栏是 1500 米,当退出事件发生时我记录了我最后一个已知位置并且它在退出区域内。
这些事件似乎与我的设备处于 sleep 状态和重新开启之间存在关联,但我无法真正证明发生这种情况的原因。我的理论是,位置的准确性可能会降低,因此 Play Services 无法再确认我在该区域内并触发退出事件。当我的设备重新打开并使用网络/wifi/gps 更新其位置时,它会触发一个新的进入事件。还应该注意的是,当我在某些 session 室时,如果我的手机放在口袋里,我的办公室有时会失去信号。
我测试了当最后一个已知位置在地理围栏内时忽略退出事件的想法,但我发现这会导致许多正常的退出事件无法正常工作。请求位置更新通常会失败,因为我在里面并且更新通常会超时(尝试大约 2 - 4 分钟)。此外,一旦退出事件被发送,我会在之后的某个随机时间收到一个新的进入事件,因为 Google Play 确定我在该区域之外,现在被发现又回到了里面。
有没有人看到过类似的行为或解释了为什么会发生这种情况?由于添加了地理围栏并正常工作,我对此似乎无能为力,但我不能相信退出事件一直都是合法的,这让我的时间测量受到质疑。
最佳答案
首先我不是开发人员。我在运行 Android 4.3 的 Nexus 4 上使用了 AutoLocation + Tasker,满意度为 100%。即时、准确且可重复。我在 2013 年 11 月得到了一个新的 Nexus 5,但根本无法让这个应用程序运行。我经历了确切的症状以及更多。我必须在地理围栏内待 15 到 20 分钟,然后它才能识别出我在里面,而且当我在里面的一天中有很多时间,它会触发导出。
我等待 Android 更新 4.4.1,然后是 4.4.2。我等待 Google Play Service 4.1 现在是 4.2。什么都不管用。我尝试了另一个名为 Geofence Memo 的地理围栏应用程序,它使用相同的 API 和相同的问题。
我什至买了一个新的 Red Nexus 5,它配备了最新的软件和同样的问题。
我应该提一下,我的旧 Nexus 4 现在运行的是 Android 4.4,这个 AutoLocation + Tasker 非常有用。
当我还在 4.3 上使用我的 Nexus 4 时,我运行了一个支持 LTE 的混合调制解调器,这个应用程序组合停止工作,直到我重新刷新出厂调制解调器 zip。
我认为这与基带错误有关,而不是 Android 错误,但我可能错了。
我的 2 个 Nexus 5 运行 100% 库存 rom,无需生根。
此外,我在进入和存在地理围栏时打开了手机屏幕,认为这可能是后台进程问题,但它完全没有注意到。我什至尝试通过地理围栏运行 GPS 导航,但它仍然不知道我在哪里。
关于android - 仍在内部时接收地理围栏的退出通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21039247/
我是一名优秀的程序员,十分优秀!