2015-09-26 60 views
0

所以有很多谈论获取设备的位置。我的需求非常特别,我想知道是否有确切的答案。获取设备位置的OnDemand

  • 我不想跟踪用户。
  • 有一个在我的应用程序的特定活动,需要的位置。因此,当用户采取特定的操作时,我需要获取设备的位置。
  • 我需要的位置获取发生非常快
  • 我想精确位置。

Android的例子似乎是约粗略的位置只有https://developer.android.com/training/location/retrieve-current.html

而这里的答案似乎是有关跟踪用户。

对于我的应用程序,有问题的行为是不是在所有常见(也许一次或每周两次),但是当用户要使用该功能,我需要最好的当前位置。

所以我跟踪用户唯一的解决办法?

+0

这是我的一些帮助http://www.andygup.net/how-accurate-is-android-gps-part-2-consuming-real-time-locations/ – Rob85

回答

1

的文档,你链接指定:

您选择的权限确定由API返回的位置精度

后来

位置的精度返回通过此调用取决于您放入应用清单中的权限设置,如本文档的指定应用权限部分所述。

所以,如果你添加<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>那么你会得到很好的位置。

这就是说,有可能你不会得到位置,因为没有用户的最后一个位置(例如很久以前它已被检索到)。

getLastLocation()方法返回一个Location对象(...)。在位置不可用的极少数情况下,返回的位置对象可能为空。

那么你就只需要启动跟踪用户的位置,按照documentation,但你第一次更新后,您可以立即停止跟踪并释放资源。这将给你的位置几乎肯定(如果可用),但可能不是马上。