我正在尝试获取当前位置,并将其显示在Android应用程序内的OSMdroid地图上。但是我没有位置,因此从未调用过应该第一次调用该位置的Runnable
。
我尝试了不同的提供程序,权限都已启用,并且GPS位置也是如此。
private void getCurrentLocation() {
GpsMyLocationProvider provider = new GpsMyLocationProvider(this);
provider.addLocationSource(LocationManager.GPS_PROVIDER);
provider.addLocationSource(LocationManager.NETWORK_PROVIDER);
myLocationOverlay = new MyLocationNewOverlay(provider, mMapView);
myLocationOverlay.enableMyLocation();
myLocationOverlay.setDrawAccuracyEnabled(true);
myLocationOverlay.runOnFirstFix(new Runnable() {
public void run() {
// never reaches this point
Timber.i("runOnFirstFix");
}
});
mMapView.getOverlays().add(myLocationOverlay);
if (myLocationOverlay.getMyLocation() == null) {
// this shows up
Timber.i("Location not retrieved");
}
}
我知道添加叠加层后可能找不到该位置,但是我不明白为什么Runnable
无法正常工作