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 给出不兼容的类型错误的主要内容,如果未能解决你的问题,请参考以下文章