这里的地图Android SDK PositioningManager start方法返回false

时间:2016-10-02 22:49:50

标签: android here-api

我在Nexus 6P上使用Here Maps来测试他们的导航路由逻辑。我有地图设置,我正在尝试让我的位置显示在地图上。

此处映射在Android 6.0.1上运行的v3.2.1 Premium版本

但是每当我调用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权限

1 个答案:

答案 0 :(得分:2)

当我遇到同样的问题时,我会在这里给出@ Marco的评论。如果positioningManager.start()方法返回false,则可能必须将此信息包含在AndroidManifest.xml

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

这解决了我的问题。