这里地图 SDK 在小米、红米和 oppo 等一些真实设备上无法完美加载

问题描述

在这里使用 map android sdk 来获取用户的当前位置,但是在一些真实的设备中,例如小米、红米,oppo Map 在初始加载时没有完全加载。

我正在尝试使用此处的地图 API 获取用户的当前位置,并基于手势控制我正在尝试在此处的地图上实现重定位功能

显示蓝色空屏幕。

 private void GetLocation() {
        Log.d(TAG,"GetLocation Enter");
        progressDialog.show();
        assert mapFragment != null;
        mapFragment.init(new OnEngineInitListener() {
            @Override
            public void onEngineInitializationCompleted(OnEngineInitListener.Error error) {

                if (error == OnEngineInitListener.Error.NONE) {
                    map = mapFragment.getMap();
                    assert map != null;
                    map.setZoomLevel((map.getMaxZoomLevel() + map.getMinZoomLevel()) / 1.2);
                    positioningManager = PositioningManager.getInstance();
                    PositioningManager.OnPositionChangedListener mapPositionHandler = new PositioningManager.OnPositionChangedListener() {
                        @Override
                        public void onPositionUpdated(PositioningManager.LocationMethod method,GeoPosition position,boolean isMapMatched) {
                           // GeoCoordinate currentPosition = position.getCoordinate();
                            Log.e(TAG,"onPositionUpdated: " + "coming...");
                            geoPosition = position.getCoordinate();
                            progressDialog.cancel();
                            Log.d(TAG,"inside getting position"+String.valueOf(position.getCoordinate()));
                            activateSpeedLimitFragment(position.getCoordinate());
                            startPositioningManager();
                            startNavigationManager();
                            progressDialog.cancel();
                        }
                        @Override
                        public void onPositionFixChanged(PositioningManager.LocationMethod method,PositioningManager.LocationStatus status) {
                            Log.e(TAG,"currentPosition: " + status);
                            progressDialog.cancel();
                        }
                    };
                    try {
                        positioningManager.addListener(new WeakReference<>(mapPositionHandler));
                        if(!positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK)) {
                            Log.e(TAG,"PositioningManager.start: Failed to start...");
                        }
                    } catch (Exception e) {
                        Log.e(TAG,"Caught: " + e.getMessage());
                    }
                    try {
                        if (geoPosition !=null) {
                            map.setCenter(new GeoCoordinate(geoPosition),Map.Animation.NONE);
                        }else {
                            map.setCenter(new GeoCoordinate(latitude,longitude),Map.Animation.NONE);
                        }
                    }catch (Exception e){
                        Log.e(TAG,"Caught: " + e.getMessage());
                    }
                    map.getPositionIndicator().setVisible(true);
                    Image image_indicator = new Image();
                    try {
                        image_indicator.setimageResource(R.drawable.navigator);
                        map.getPositionIndicator().setMarker(image_indicator);
                        Objects.requireNonNull(mapFragment.getMapGesture()).addOnGestureListener(new MyOnGestureListener(),false);
                    } catch (IOException e) {
                        e.printstacktrace();
                    }
                }else {
                    progressDialog.cancel();
                    Log.d(TAG,"OnEngineInitListener_error"+error.getDetails());
                }
                Log.d(TAG,"comingBelow");
                MapTrafficLayer traffic = map.getMapTrafficLayer();
                map.setLandmarksVisible(true);
                traffic.setdisplayFilter(TrafficEvent.Severity.norMAL);
                map.setTrafficinfovisible(true);
                map.setFleetFeaturesVisible(EnumSet.of(Map.FleetFeature.TRUCK_RESTRICTIONS));
            }
        });


    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)