我在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权限
答案 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"/>
这解决了我的问题。