2

刚刚观看了有关新定位功能的会议: https ://developers.google.com/events/io/sessions/325337477 ,并认为 GEOFENCES 的功能将非常适合我的应用程序。我还下载了演示应用程序,虽然它提供的信息量很大,但并没有提供我正在寻找的功能。因此,有人可以向我解释或指出一些示例,说明如何在应用程序关闭时向应用程序添加地理围栏检测。如果您看过 IO 会话并注意到应用程序 Zillo,这就是我所说的。

我现在知道的是,我不想在后台使用持续运行的服务来检测 TRANSITION 广播,但想在清单文件中注册它们,而不是在广播接收器类中处理它们。就像您在使用 GCM 消息传递时会做的事情。所以问题是:

清单中需要注册什么广播?我应该什么时候注册我的栅栏,以便它们只注册一次并在应用程序关闭时保持注册状态?在这种情况下如何优化电池寿命是否有任何指示?如果有人已经体验过地理围栏的半径,您建议检测进入大型建筑物(例如 3000-5000 平方米的底层面积)?

4

1 回答 1

2

我实现了你所说的。(使用广播接收器而不是 IntentService)。我从示例代码开始,然后做了一些小改动,在我的回复中列出

当应用程序关闭时,它似乎工作正常。

至于优化电池寿命,这一切都由操作系统完成。您只需注册栅栏,其余的由 Android 处理。我认为他们已经对其进行了很好的优化,在注册了近 100 个围栏后,我没有看到明显的流失。但我还没有进行广泛的测试。

至于半径大小,我建议构建一个包含地图的示例应用程序,然后在 lat lng 上放一个大头针并使用半径直到它看起来正确。对于一个疯狂的猜测,我建议半径 150 米左右?

--update-- 关于我所发现的准确性的更多详细信息。我构建了一个测试应用程序来查看自己的轨迹并查看准确性,并且在过去的几周里一直在开车并经常检查它。我只在关闭 gps 的情况下进行了测试,因为这与大多数用户外出时会遇到的情况相似。:

  • 户外,不靠近任何 wifi 信号:不是很准确,大约 100-200 米以上
  • 在户外,靠近 wifi 信号:非常准确。10-30米之间。如果我坐在餐厅外面,或者在有 wifi 信号的购物中心,它会非常清楚我在哪里。
  • 室内:即使有 wifi,很多时候它似乎不如室外准确。更像是30-50米。
于 2013-10-24T18:38:03.743 回答