我正在Nexus 6P上使用“此处地图”来测试其导航路由逻辑。我已经完成了地图设置,目前正在尝试获取要显示在地图上的位置。

此处映射了运行在Android 6.0.1上的v3.2.1高级版

但是,每次我为PositioningManager实例调用start方法时,都会得到错误的返回。这是我的代码:

mapEngine.init(context, new OnEngineInitListener() {
        @Override
        public void onEngineInitializationCompleted(Error error) {
            if (error == OnEngineInitListener.Error.NONE) {

                setupMapView(mapView);

                // Start the positioning manager
                positioningManager = PositioningManager.getInstance();
                positioningManager.addListener(new WeakReference<PositioningManager.OnPositionChangedListener>(positionListener));

                if(positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK_INDOOR)){
                    Log.d(TAG, "LOCATION STARTED SUCCESSFUL");
                }else{
                    Log.d(TAG, "LOCATION STARTED UNSUCCESSFUL");
                }

                map.getPositionIndicator().setVisible(true);

                listener.onMapEngineCompleted(error);
            } else {
                // handle factory initialization failure
                Log.d(TAG, error.toString());
                Log.e(TAG, error.getDetails());
                Log.e(TAG, error.getStackTrace());
                listener.onMapEngineCompleted(error);
            }
        }
    });


我还已经从系统授予了ACCESS_FINE_LOCATION权限

最佳答案

当我遇到相同的问题时,我将在此处输入@Marco的评论的答案。如果positioningManager.start()方法返回false,则可能必须将其包括在AndroidManifest.xml中:

<service android:enabled="true" android:exported="false" android:name="com.here.services.internal.LocationService" android:process=":remote"/>


这为我解决了这个问题。

关于android - 此处Maps Android SDK PositioningManager启动方法返回false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39822535/

10-11 06:10