Javascript Mapbox NavigationViewOptions和NavigationLauncherOptions

Javascript Mapbox NavigationViewOptions和NavigationLauncherOptions,javascript,java,android,mapbox,mapbox-android,Javascript,Java,Android,Mapbox,Mapbox Android,我是Mapbox的新手,我已经有几天的时间试图弄清楚如何将progressChangeListener添加到我的NavigationLauncherOptions中 getInstance(这个,getString(R.string.access_令牌)); setContentView(R.layout.activity_main) Point originPoint=Point.fromLngLat(-80.311641,25.910195); 点目标点=从LNGLAT开始的点(-80.31

我是Mapbox的新手,我已经有几天的时间试图弄清楚如何将progressChangeListener添加到我的NavigationLauncherOptions中

getInstance(这个,getString(R.string.access_令牌)); setContentView(R.layout.activity_main)

Point originPoint=Point.fromLngLat(-80.311641,25.910195);
点目标点=从LNGLAT开始的点(-80.312159,25.911922);
NavigationRoute.builder(MainActivity.this)
.accessToken(Mapbox.getAccessToken())
.原点(原点)
.目的地(目的地点)
.build()
.getRoute(新回调(){
@凌驾
公共void onResponse(调用、响应){
currentRoute=response.body().routes().get(0);
NavigationLauncherOptions=NavigationLauncherOptions.builder()
.方向路线(当前路线)
.shouldSimulatorOute(真)
.build();
NavigationLauncher.startNavigation(MainActivity.this,选项);
NavigationViewOptions.Builder选项Navigate=NavigationViewOptions.Builder();
选项Navigate.progressChangeListener(新的progressChangeListener(){
@凌驾
public void onProgressChange(位置,RouteProgress RouteProgress){
Log.v(“RES”,String.valueOf(routeProgress.currentState());
if(routeProgress.currentState().equals(RouteProgressState.ROUTE_到达)){
//执行到达逻辑
}
}
});
}
@凌驾
失败时公共无效(调用、可丢弃){
}
});
我尝试附加的代码,但它不工作。 非常感谢您的帮助。 感谢您

如Mapbox的导航UI SDK路线进度文档所述:

此侦听器仅在将
NavigationView
添加到时可用 您的
活动
片段
通过
导航视图选项
布局XML。你 无法将它们添加到
NavigationLauncherOptions


因此,如果需要访问进度侦听器,我建议通过
NavigationViewOptions
而不是
navigationlauncheoptions
添加
NavigationView
,并遵循Mapbox中的详细指导。示例应用程序还提供了一些有用的示例。

请详细说明哪些不起作用?它可以正常工作,但当我添加NavigationViewOptions.Builder选项Navigate=NavigationViewOptions.Builder()时;要捕获进度更改,它什么都不做。我需要捕获并记录进度更改,以便在到达时执行其他操作。谢谢我正在使用NavigationLauncherOptions进行导航,但我不知道如何添加NavigationViewOptions来执行进度更改Listener非常感谢,你的评论真的很有用。很高兴听到这是有用的!
    Point originPoint = Point.fromLngLat(-80.311641,25.910195);
    Point destinationPoint = Point.fromLngLat(-80.312159, 25.911922);

    NavigationRoute.builder(MainActivity.this)
            .accessToken(Mapbox.getAccessToken())
            .origin(originPoint)
            .destination(destinationPoint)
            .build()
            .getRoute(new Callback<DirectionsResponse>() {
                @Override
                public void onResponse(Call<DirectionsResponse> call, Response<DirectionsResponse> response) {
                    currentRoute = response.body().routes().get(0);
                    NavigationLauncherOptions options = NavigationLauncherOptions.builder()
                            .directionsRoute(currentRoute)
                            .shouldSimulateRoute(true)
                            .build();
                    NavigationLauncher.startNavigation(MainActivity.this, options);

                    NavigationViewOptions.Builder optionsNavigate = NavigationViewOptions.builder();
                    optionsNavigate.progressChangeListener(new ProgressChangeListener() {
                        @Override
                        public void onProgressChange(Location location, RouteProgress routeProgress) {
                            Log.v("RES", String.valueOf(routeProgress.currentState()));
                            if (routeProgress.currentState().equals(RouteProgressState.ROUTE_ARRIVED)) {
                                // Execute arrival logic
                            }
                        }
                    });
                }

                @Override
                public void onFailure(Call<DirectionsResponse> call, Throwable throwable) {
                }
            });