0

我正在开发一个基于位置的 android 应用程序,它需要在后台连续检索位置。

  • 我正在使用 LocationManager 来获取位置更新。
  • 我编写了一个实现 LocationListener 并检索位置更新的服务。
  • 有一个选项提供给用户来打开/关闭通知。如果通知关闭,我会在我的应用程序进入后台时调用 stopService(),否则服务会继续运行并且不会调用 mLocManager.removeUpdates()。

这意味着如果用户保持通知状态,该服务将继续请求位置更新。我现在最担心的是电池耗尽。我知道我必须在某个时候停止请求更新,但我的应用程序需要在后台连续接收位置。当我使用 NETWORK_PROVIDER 并以 5 分钟的间隔请求更新时,谁能告诉我平均电池位置更新可能会消耗多少电量?

我还应该使用 LocationClient 而不是 LocationManager 来提高性能吗?或者如果我继续使用 LocationManager 可以吗?

如果有人可以向我提供有关如何在应用程序中有效地接收位置更新的建议,这将是非常棒的,因为应用程序不断需要位置数据。

4

3 回答 3

1

LocationClient 是 Google Play 服务的一部分,我相信 Location Client 可以更有效地以最少的能量(电池消耗)更准确地获取位置。

并参考 API :) http://developer.android.com/reference/com/google/android/gms/location/LocationClient.html

http://developer.android.com/reference/android/location/LocationManager.html

于 2013-10-28T06:44:06.713 回答
0

NETWORK_PROVIDER使用并每 5 分钟更新一次位置请求位置更新就可以了。但是,如果将其与 gps 进行比较,则位置的准确性会降低,GPS_PROVIDER但 gps 需要更多的功率。作为我昨天的个人经历,我的 GPS 持续开启 3 小时,每 10 秒跟踪一次我的位置,那段时间我使用 Nexus 4 耗电量为 20%。如果可以的话,你可以自己选择休息你与否。

但正如其他人所提到的,使用 FusedLocation Provider 是LocationClient解决准确性与电池消耗问题的最佳选择。

于 2013-10-28T07:03:30.513 回答
0

您必须记住 LocationClient 是 Google Play 服务的一部分,因此它仅适用于平台包括 Google Play 商店的设备。某些设备可能使用非标准版本的 Android,您将无法访问 LocationClient。

于 2013-10-28T06:38:33.583 回答