未调用myLocationOverlay.runOnFirstFix的可运行状态,并且getMyLocation()为空

时间:2019-03-28 14:21:22

标签: osmdroid mylocationoverlay

我正在尝试获取当前位置,并将其显示在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无法正常工作

0 个答案:

没有答案