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

Posted

技术标签:

【中文标题】FusedLocationApi.requestLocationUpdates 给出不兼容的类型错误【英文标题】:FusedLocationApi.requestLocationUpdates gives Incompatible Types Error 【发布时间】:2016-07-26 13:08:38 【问题描述】:

我正在使用 Google Play 服务获取当前位置。当我使用requestLocationUpdates 方法时,它会给出红线; 不兼容的类型。必需:android.location.Location。找到: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) 

                
            );

这也会产生 same 错误。方法参数有GoogleApiClient、LocationRequest、LocationListener。 我不明白错误在哪里。任何想法 ? 提前致谢。

【问题讨论】:

请把你的代码发给你.. 【参考方案1】:

您无需指定 mLastLocation。 LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); 由于您的班级实现了 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)

【讨论】:

是的,这是有道理的。但是 onLocationChanged 没有调用。所以我也使用了这个,mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); 不使用这条线,纬度和经度返回 0。通过使用它,纬度和经度是最后一个位置的值,我正在等待 onLocationChanged 方法中的新结果。调用 onLocationChanged 方法需要什么?我应该改变多少位置? 我看到了错误,是的,这很可惜。我无法将 LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this) 命令分配给 Location 对象。谢谢!

以上是关于FusedLocationApi.requestLocationUpdates 给出不兼容的类型错误的主要内容,如果未能解决你的问题,请参考以下文章