0

我正在尝试获取当前位置并将其显示在 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不起作用

4

0 回答 0