Android播放服务6.5:缺少LocationClient

时间:2014-12-09 06:22:08

标签: android location google-play-services android-geofence fusedlocationproviderapi

更新到Google Play Services 6.5.87后,由于缺少LocationCLient类,我的应用程序无法编译。

此时documentation link已损坏(404 Not Found)

我该如何解决? 我想收到位置更新,使用地理围栏等。

1 个答案:

答案 0 :(得分:56)

LocationClient类已替换为新的FusedLocationProviderApiGeofencingApi,两者都使用常见的GoogleApiClient连接技术连接到Google Play服务。连接后,您可以调用requestLocationUpdates()

等方法
LocationRequest locationRequest = LocationRequest.create()
    .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

PendingResult<Status> result = LocationServices.FusedLocationApi
    .requestLocationUpdates(
        googleApiClient,   // your connected GoogleApiClient
        locationRequest,   // a request to receive a new location
        locationListener); // the listener which will receive updated locations

// Callback is asynchronous. Use await() on a background thread or listen for
// the ResultCallback
result.setResultCallback(new ResultCallback<Status>() {
    void onResult(Status status) {
        if (status.isSuccess()) {
            // Successfully registered
        } else if (status.hasResolution()) {
            // Google provides a way to fix the issue
            status.startResolutionForResult(
                activity,     // your current activity used to receive the result
                RESULT_CODE); // the result code you'll look for in your
                              // onActivityResult method to retry registering
        } else {
            // No recovery. Weep softly or inform the user.
            Log.e(TAG, "Registering failed: " + status.getStatusMessage());
        }
   }
});