为什么要使用 GoogleAPIClient 来请求位置信息更新



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

  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);
    

 

谷歌似乎在其教程"接收位置更新"中推广了方法1。我不清楚方法 1 的好处是什么,因为方法 2 对我来说同样有效(我在应用程序中的两个不同位置使用这两种方法)。

好消息,从Google Play服务版本11.0开始,无需连接GoogleApiClient

https://android-developers.googleblog.com/2017/06/reduce-friction-with-new-location-apis.html

您不必处理回调和状态(已连接,正在连接),只需请求/删除位置更新,类似于LocationManager的味道。

获取位置更新的新方法是在 android 中使用融合位置提供程序。关于融合位置提供程序API的最好的事情是,您无需担心位置更新,它始终为您提供最新且准确的位置,并在间隔或位置更改后更新位置。关于融合位置提供商API的另一件事是,您无需考虑最佳位置提供商,因为它会自动选择最适合您的Android设备硬件的最佳位置提供商。

以下是 I/O 2013 中的 YouTube 视频,其中可能会提供更多详细信息。

相关内容

  • 没有找到相关文章

最新更新