我在 Nexus 6P 上使用 Here Maps 来测试它们的导航路由逻辑。我已完成 map 设置,目前正在尝试让我的位置显示在 map 上。
此处 map v3.2.1 Premium Version运行于Android 6.0.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/