在这里有点迷失:我需要将Mapbox的API从4.x.x-beta更新到5.x.x,并且许多内容,例如xml属性的名称,获取访问令牌和位置服务的方式都已更改。由于documentation,我处理了前两个,但似乎无法使LocationServices方法起作用。 Android Studio告诉我它无法解析getLocationServices()
或getLastLocation()
等方法。这是我的代码的样子,这是以前使用Mapbox 4.x的原因:
package com.example.myapp.interactor;
import android.location.Location;
import com.mapbox.mapboxsdk.location.LocationServices;
import com.example.myapp.MyApp;
public class GpsInteractor {
private LocationServices locationServices;
public GpsInteractor() {
locationServices = LocationServices.getLocationServices(MyApp.applicationContext());
}
public Location lastKnownLocation() {
return locationServices.getLastLocation();
}
}
所以,根据documentation这里(“获取位置更新”部分),我应该将LostLocationEngine类复制到我的项目中。当我这样做时,它无法访问LocationRequest.java LOST API类中的某些字段,即interval
,fastestInterval
和smallestDisplacement
。
我发现this问题的问题非常类似,并尝试编译Mapbox API的几种组合,但没有运气。
我错过了什么吗?
答案 0 :(得分:0)
如果您尚未修改地图locationSource,
LocationEngine locationEngine = LocationSource.getLocationEngine(this)
将返回正在使用的默认LOST位置引擎。从5.0.0
开始,LocationEngine替换LocationServices类。例如,要获取最后一个已知用户位置,您可以执行以下操作:
LocationEngine locationEngine = LocationSource.getLocationEngine(this)
locationEngine.getLastLocation();
中详细了解LocationEngine