FusedLocationApi.requestLocationUpdates 给出不兼容的类型错误

FusedLocationApi.requestLocationUpdates gives Incompatible Types Error

我正在使用 Google Play 服务获取当前位置。当我使用 requestLocationUpdates 方法时,它会显示红线; 不兼容的类型。必需:android.location.Location。 Found:com.google.android.gms.common.api.PendingResult

mLastLocation = LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);

this指的是LocationListener。我已经实现了 com.google.android.gms.location.LocationListener 并覆盖了 onLocationChanged 方法,但仍然存在红线。为了能够确定我也尝试了这个版本;

mLastLocation = LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, new LocationListener() {
                @Override
                public void onLocationChanged(Location location) {

                }
            });

这也给出了相同的错误。方法参数是GoogleApiClient、LocationRequest、LocationListener。 我不明白错误在哪里。任何的想法 ? 提前致谢。

您不需要分配 mLastLocation。 LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); 由于您的 class 实现了 LocationListener,您应该会在 onLocationChanged(Location location) 上收到您的位置更改。 你看到正式的样本和解释了吗?如果没有,这将很有用:http://developer.android.com/intl/pt-br/training/location/receive-location-updates.html

阅读更多内容:http://developer.android.com/intl/pt-br/reference/android/location/LocationListener.html#onLocationChanged(android.location.Location)