我注意到可以(至少)以两种不同的方式请求位置更新。
使用GoogleAPIClient
:
// Callback for when the GoogleAPIClient is connected
@Override
public void onConnected(Bundle connectionHint) {
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mLocationRequest, this);
}
使用LocationManager
:
LocationManager locationManager = (LocationManager) getActivity().
getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
0, 0, locationListener);
Google似乎在他们的教程"Receiving Location Updates"中宣传方法1
。我不清楚方法1
的好处是什么,因为方法2
对我来说同样合适(我在应用程序的两个不同位置使用这两种方法)。
答案 0 :(得分:2)
好消息,来自Google Play Services 11.0版,无需连接GoogleApiClient
https://android-developers.googleblog.com/2017/06/reduce-friction-with-new-location-apis.html
您不必处理回调和状态(连接,连接),只需请求/删除位置更新,类似于LocationManager的味道。
答案 1 :(得分:1)
获取位置更新的新方法是在android中使用Fused Location Provider。 关于融合位置提供商API的最佳方面是您无需担心位置更新它会在间隔或位置更改后始终为您提供最新,准确的位置和更新位置。 关于融合位置提供商API的另一件事是您不需要考虑最佳位置提供商,因为它会自动选择最适合您Android设备硬件的产品。
以下是I / O 2013中的YouTube Video,可能会提供更多详细信息。