Android : LocationManager.addProximityAlert() 和 LocationClient.addGeofences() 之间的区别



这两种机制都可以在用户进入/退出给定兴趣点时发出通知。每种方法的优缺点是什么?

来自不久前切换到Google Play Services的人,我可以给你一些体验:

我有一个大约2.5年前的应用程序,广泛使用定位服务。当然,从一开始,我们就使用了LocationManager,因为这是Android平台上可用的。

与IOS相比,我们在安卓系统上使用定位服务的体验相当糟糕。它有缺陷,不可靠,提供的位置不如我们的IOS应用程序精确,而且它消耗了更多的电池。这是一个拖累。

因此,当谷歌在今年夏天6月发布新的API时,我们欣然接受。几件事:

  1. 它更快更可靠
  2. 它没有那么脏。例如,在旧的API中,我们有时可以获得带有新时间戳的"旧"修复。这种事再也不会发生了。还有更多,但这将是一个更加冗长的帖子
  3. 它肯定会消耗更少的电池。例如,当打开地图视图时,GPS一直在运行,并且GPS图标可见。新的情况并非如此。这让用户想知道发生了什么。这不是一个大问题

因此,当涉及到位置输出和工作时,一切都会更好。但也有一些缺点:

  1. 你必须安装谷歌播放服务,这意味着它无法在任何"未经谷歌批准"的手机型号上工作,在某些情况下,你必须告诉用户他们需要安装它。

  2. API本身更为复杂,部分原因是第1点。除了"常规"回调(即等待位置修复等)之外,您现在还有一个过程,在开始之前,您必须检查播放服务是否可用,并"连接"位置客户端。这是额外的代码,掌握起来有点复杂。在代码中也要考虑更多的故障条件(如果你能被打扰的话…)

  3. 谷歌播放服务本身至少需要2.2,因此它不适用于比这更旧的设备。我们不得不告诉一些客户他们必须升级。。。

希望这能有所帮助。

最新更新