为啥使用 GoogleAPIClient 请求位置更新?
Posted
技术标签:
【中文标题】为啥使用 GoogleAPIClient 请求位置更新?【英文标题】:Why use GoogleAPIClient to request location updates?为什么使用 GoogleAPIClient 请求位置更新? 【发布时间】:2016-09-26 17:42:31 【问题描述】:我注意到可以(至少)以两种不同的方式请求位置更新。
使用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
方法对我来说同样有效(我在应用程序的两个不同位置使用这两种方法)。
【问题讨论】:
也检查这个答案link 【参考方案1】:好消息,来自 Google Play Services 11.0 版,无需连接 GoogleApiClient
https://android-developers.googleblog.com/2017/06/reduce-friction-with-new-location-apis.html
您不必处理回调和状态(已连接、正在连接),只需请求/删除位置更新,类似 LocationManager。
【讨论】:
【参考方案2】:获取位置更新的新方法是在android中使用Fused Location Provider。 Fused location provider API 的最佳之处在于您无需担心位置更新,它始终为您提供最新和准确的位置,并在间隔或位置更改后更新位置。 Fused location provider API 的另一件事是您无需考虑最佳位置提供程序,因为它会自动选择最适合您的 Android 设备硬件的位置提供程序。
这是 I/O 2013 中的 YouTube Video,它可能会提供更多详细信息。
【讨论】:
以上是关于为啥使用 GoogleAPIClient 请求位置更新?的主要内容,如果未能解决你的问题,请参考以下文章
不知道为啥应用程序在 GoogleApiClient.connect() 上被强制关闭
如何将 GoogleApiClient 位置服务与 Google Api 一起使用?
GoogleApiClient onConnectionSuspended ,我应该再次调用 mGoogleApiClient.connect() 吗?