Я пытаюсь получить текущее местоположение и отобразить его на карте OSMdroid внутри приложения Android. Но у меня нет местоположения, и 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
не работает