getLastLocation() 是不是请求当前位置?
Posted
技术标签:
【中文标题】getLastLocation() 是不是请求当前位置?【英文标题】:Is getLastLocation() make a request for the current location?getLastLocation() 是否请求当前位置? 【发布时间】:2017-08-03 15:36:38 【问题描述】:我正在使用 google api 融合位置。我想在不使用 LocationListener 接口连续跟踪位置的情况下获得高精度的当前位置。
我有一个简单的用例:用户点击按钮,应用程序将显示当前的纬度和经度(新位置)。
那么,getLastLocation() 是从缓存中检索位置(这意味着在某些情况下它可能不准确)还是发出位置请求以获取新数据?
如果不是,是否可以在不实现 LocationListener 接口的情况下实现我的用例?
【问题讨论】:
getLastLocation 来自缓存,如果您需要准确的内容,则需要使用 LocationListener @tyczj 我有一个与此相关的查询,请回答。如果我只使用 locationListener,onLocationChanged() 是否会被调用一次(在一开始),尽管我的位置没有改变(例如:在家)? 【参考方案1】:根据the andoid website 上的文档。
要请求最后一个已知位置,请调用 getLastLocation() 方法,将您的 GoogleApiClient 对象实例传递给它。在 Google API 客户端提供的 onConnected() 回调中执行此操作,该回调在客户端准备好时调用。以下代码 sn -p 说明了请求和响应的简单处理:
这意味着当您调用getLastLocation()
时它不会更新位置。这将在基于更新的服务上完成。
您可以使用此功能请求位置更新
protected void startLocationUpdates()
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mLocationRequest, this);
【讨论】:
以上是关于getLastLocation() 是不是请求当前位置?的主要内容,如果未能解决你的问题,请参考以下文章
GoogleApiClient 中的 getLastLocation() 始终为空
Android studio 不检查 mFusedLocationProviderClient.getLastLocation().addOnSuccessListener 并返回当前位置 null
FusedLocationApi.getLastLocation 在后台始终为空
从 Settings Api 对话框打开位置后,getLastLocation() 返回 null
为啥 getLastLocation() 方法在第一次启动应用程序时不检索位置?
Android FusedLocationProviderClient getLastLocation 总是第一次返回 null