我正在学习使用 Google Service API 获取位置信息。但是我很困惑,因为我看到人们使用两种方式来获取位置:
1.
FusedLocationProviderApi fusedLocationProviderApi = LocationServices.FusedLocationApi;
Location lastKnownLocation = fusedLocationProviderApi.getLastLocation(googleApiClient);
2.
FusedLocationProviderClient mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
...
Task<Location> locationTask = mFusedLocationClient.getLastLocation();
locationTask.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
// Got last known location
if (location != null) {
mLastKnownLocation = location;
}
}
});
有人可以向我解释一下何时使用哪一种以及这两种方法之间有什么区别来获取最后已知位置吗?
最佳答案
两种 getLastLocation
方法都指向相同的文档内容。但是使用新的 FusedLocationProviderClient
比 FusedLocationProviderApi
更简单,因为我们不处理 google api 客户端及其回调方法。它会自动为我们处理播放服务连接。就这样
FusedLocationProviderClient 方法返回任务(甚至获取最后已知位置),恕我直言,这是由于在内部处理播放服务。
关于android - 使用 Google Service API 获取最后已知位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44894539/