浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

Android 导航SDK

百度Andriod 导航SDK为Android移动端应用提供了一套简单易用的导航服务接口,适用于Android 2.1及以上版本。专注于为广大开发者提供最好的导航服务,通过使用百度导航SDK,开发者可以轻松为应用程序实现专业、高效、精准的导航功能。

路线规划成功后,就可以使用专业导航服务,专业导航服务依赖App的页面生命周期,开发时,只需要将百度导航SDK专业导航生命周期接口挂接到对应页面的生命周期接口即可,App页面既可以是Activity,也可以是Fragment等。

专业导航模块提供的集成接口示例如:

androidSDK%2Fnav%2Fimages%2Fprofessional-nav-1.png

1导航过程中修改终点

专业导航服务过程中,可以支持修改终点,自动重新发起算路并继续专业导航服务,接口为:

IBNRouteGuideManager.resetEndNodeInNavi(BNRoutePlanNode newEndNode)

2监听专业导航诱导事件

专业导航服务过程中,还可以通过设置回调监听器监听诱导过程和诱导信息,这是通过IBNRouteGuideManager.IRouteGuideEventListener接口来实现的,而诱导消息类型等参数定义在 BNaviCommonParams类中。

3示例代码
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        createHandler();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        }
        View view = BaiduNaviManagerFactory.getRouteGuideManager().onCreate(this, mOnNavigationListener);

        if (view != null) {
            setContentView(view);
        }

        Intent intent = getIntent();
        if (intent != null) {
            Bundle bundle = intent.getExtras();
            if (bundle != null) {
                mBNRoutePlanNode = (BNRoutePlanNode)
                        bundle.getSerializable(BNOldIFNormalDemoMainActivity.ROUTE_PLAN_NODE);
            }
        }

        routeGuideEvent();
    }

    // 导航过程事件监听
    private void routeGuideEvent() {
        BNEventHandler.getInstance().getDialog(this);
        BNEventHandler.getInstance().showDialog();

        BaiduNaviManagerFactory.getRouteGuideManager().setRouteGuideEventListener(
                new IBNRouteGuideManager.IRouteGuideEventListener() {
                    @Override
                    public void onCommonEventCall(int what, int arg1, int arg2, Bundle bundle) {
                        BNEventHandler.getInstance().handleNaviEvent(what, arg1, arg2, bundle);
                    }
                }
        );
    }

    @Override
    protected void onStart() {
        super.onStart();
        BaiduNaviManagerFactory.getRouteGuideManager().onStart();
    }

    @Override
    protected void onResume() {
        super.onResume();
        BaiduNaviManagerFactory.getRouteGuideManager().onResume();
    }

    protected void onPause() {
        super.onPause();

        BaiduNaviManagerFactory.getRouteGuideManager().onPause();

    }

    ;

    @Override
    protected void onStop() {
        super.onStop();
        BaiduNaviManagerFactory.getRouteGuideManager().onStop();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        BaiduNaviManagerFactory.getRouteGuideManager().onDestroy(false);
        BNOldIFNormalDemoMainActivity.activityList.remove(this);

        BNEventHandler.getInstance().disposeDialog();
    }