Android 为什么使用GoogleAppClient请求位置更新?

Android 为什么使用GoogleAppClient请求位置更新?,android,android-mapview,android-maps-v2,android-location,android-googleapiclient,Android,Android Mapview,Android Maps V2,Android Location,Android Googleapiclient,我注意到可以(至少)以两种不同的方式请求位置更新 使用GoogleAppClient: // Callback for when the GoogleAPIClient is connected @Override public void onConnected(Bundle connectionHint) { LocationServices.FusedLocationApi.requestLocationUpdates( mGoogleApiClient, mLoca

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

  • 使用
    GoogleAppClient

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

  • 谷歌似乎在他们的教程中推广方法
    1
    。我不清楚方法
    1
    的好处是什么,因为方法
    2
    对我来说同样适用(我在一个应用程序中的两个不同位置使用这两种方法)。

    获取位置更新的新方法是在android中使用。 Fused location provider API最棒的一点是您不必担心位置更新它始终为您提供最新和准确的位置,并在间隔或位置更改后更新位置。 关于Fused location provider API,还有一件事是您不需要考虑最佳位置提供程序,因为它会自动选择最适合您的android设备硬件的位置提供程序


    以下是2013年I/O中的一个示例,可能会提供更多详细信息。

    好消息,来自Google Play Services 11.0版,无需连接GoogleAppClient

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

    也检查这个答案