【问题标题】:Why use GoogleAPIClient to request location updates?为什么使用 GoogleAPIClient 请求位置更新?
【发布时间】:2016-09-26 17:42:31
【问题描述】:

我注意到可以(至少)以两种不同的方式请求位置更新。

  1. 使用GoogleAPIClient

    // Callback for when the GoogleAPIClient is connected
    @Override
    public void onConnected(Bundle connectionHint) {
        LocationServices.FusedLocationApi.requestLocationUpdates(
            mGoogleApiClient, mLocationRequest, this);
    }
    

 

  1. 使用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

标签: android android-mapview android-maps-v2 android-location android-googleapiclient


【解决方案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,它可能会提供更多详细信息。

    【讨论】:

      猜你喜欢
      • 2018-10-28
      • 2014-06-03
      • 2016-06-25
      • 2019-08-26
      • 2015-12-07
      • 2020-04-18
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      相关资源
      最近更新 更多