FusedLocationApi 连接后如何获取位置?
Posted
技术标签:
【中文标题】FusedLocationApi 连接后如何获取位置?【英文标题】:How to get location as soon as FusedLocationApi connected? 【发布时间】:2019-06-08 09:27:39 【问题描述】:我使用以下代码使用 FusedLocationApi 获取用户的位置,但似乎 onLocationChanged 确实在位置真正改变但不发送初始位置时有效。当我启动 Api 时什么都没有发生,但是当我改变我的位置时,目标函数被调用。
这就是我启动 Api 的方式:
@Override
public void onConnected(Bundle dataBundle)
LocationServices.FusedLocationApi.requestLocationUpdates(mLocationClient, mLocationRequest, this);
这就是我调用自己的函数的方式:
@Override
public void onLocationChanged(Location location)
if (location != null)
CurrentLocation=String.valueOf(location.getLatitude())+"_"+String.valueOf(location.getLongitude());
analyzeData(CurrentLocation);
我如何在onConnected
被触发而不是位置更改时立即获取位置。谢谢
【问题讨论】:
使用 setFastestInterval(); ***.com/a/26407873/7094064 【参考方案1】:onLocationChange
仅在如上所述更改位置时调用。
因此,如果您需要在onConnect
被触发后立即获取位置,您需要使用自爆代码作为解决方法,直到onLocationChange
被触发
private FusedLocationProviderClient mFusedLocationClient;
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
mFusedLocationClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>()
@Override
public void onSuccess(Location location)
// Got last known location. In some rare situations this can be null.
if (location != null)
// Logic to handle location object
);
【讨论】:
以上是关于FusedLocationApi 连接后如何获取位置?的主要内容,如果未能解决你的问题,请参考以下文章
使用 fusedlocationapi 获取位置,而无需在一段时间后请求位置更新
在Android中使用FusedLocationApi时如何获取Location的模式
android模拟位置不适用于locationservices.fusedlocationapi