LocationClient与LocationManager

时间:2013-09-20 12:00:25

标签: android geolocation

LocationClientLocationManager之间有什么区别。

他们之间的利弊是什么(如电池,准确度)?

哪个更好用?

4 个答案:

答案 0 :(得分:33)

Location Manager是在Android SDK中引入的,可以用作android的功能。

Location Client是Google Play SDK的一部分,并在最近的Google IO 2013中推出。

可以理解,由于位置客户端是最新的,因此以更高的精度获得最小能量(电池消耗)的位置效率更高。

更新: LocationClient已弃用。您必须使用GoogleApiClient。可以找到它的一个示例here

Google Play服务团队已清理其代码并将LocationClient功能移至GoogleApiClient。

相同的教程可用于 http://developer.android.com/training/location/retrieve-current.html

在以下链接中,您可以找到关于此主题的IO谈话 http://www.youtube.com/watch?v=Bte_GHuxUGc

答案 1 :(得分:14)

我一直在Android中开发基于位置的应用程序,我认真不建议在任何情况下使用LOCATION CLIENT。理由:

  1. 位置更新行为非常不正常,无法按预期工作。即切换网络时位置更新卡住。 (它一直给你一些旧位置)

  2. 位置客户端无法修改Android操作系统的Android版本,因为它需要谷歌播放服务。

  3. 根据我的经验,位置客户端可能在手机电池方面表现不错,但为您提供及时准确的位置更新效果不佳。

    我推荐好老位置管理器,因为我找不到位置客户端可靠。

    P.S。 :如果您甚至没有在基于位置的应用程序中获取当前位置,则无需节省电池。

    编辑: 如果您知道LocationManager和LocationClient的实现(两者都在文档中提供),您可以创建自己的类似LocationClient的包装器(带回调和填充),它将使用LocationManager但具有自定义可调整属性。

    编辑2:

    请在此处找到LocationManager Wrapper类,它提供及时的位置更新:

    https://github.com/rahulsh12/LocationManagerWrapper

答案 2 :(得分:3)

我参与了一个跟踪应用程序,我的经验是LocationManager比LocationClient更好。 LocationClient不提供任何方式来指定您仅希望从GPS进行位置更新。它允许的只是指定"高精度"。这在大多数情况下都适用,但是每隔一段时间你就会获得一个位置更新,这个位置更新数百米,但指定精度为几米。没有办法知道你有一个无法使用的样本。使用LocationManager,如果您指定GPS_PROVIDER,您可以放心,您永远不会得到非常不准确的样本。为我们工作得很好。

答案 3 :(得分:2)

来自之前转换到Google Play服务的人,我可以给你一些经验:

我有一个大约2.5岁的应用程序,它广泛使用位置服务。当然,从一开始我们就使用了LocationManager,因为Android平台上提供了这些功能。

与IOS相比,Android上的位置服务体验非常糟糕。它比我们的IOS应用程序有缺陷,不可靠,并且提供的位置不太精确,而且它耗尽了更多的电量。这是拖累。

因此,当谷歌在今年夏天推出新的API时,我们跳了起来。这样更好。有几件事:

  1. 更快更可靠。

  2. 它不那么多了。例如,在旧的API中,我们有时会得到一个旧的"修复新的时间戳。这种情况再也不会发生了。还有更多,但这将是一个更长的帖子。

  3. 绝对耗尽电量。例如,当您打开地图视图时,GPS会一直运行,并且GPS图标可见。新的情况并非如此。这让用户想知道发生了什么。这不再是一个大问题。

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

    1. 您必须安装Google Play服务,这意味着它不适用于任何非谷歌批准的"手机型号,在某些情况下,您必须告诉用户需要安装它。

    2. API本身是更复杂的IMO,部分原因在于第1点。除了"常规"回调即等待位置修复等。您现在有一个流程可以在您开始之前参与,您必须检查播放服务是否可用,以及" connect" locationclient。这是额外的代码,有点复杂。在代码中也要考虑更多错误的条件(如果你感到困扰......)

    3. Google Play服务本身至少需要2.2,因此它不适用于旧设备。我们不得不告诉一些客户他们必须升级......

    4. 希望这有帮助。