初始化说明
在使用百度导航SDK任何功能之前,需要先进行初始化,初始化方法可调用如下接口:
BaiduNaviManagerFactory.getBaiduNaviManager().init(context, mSDCardPath, APP_FOLDER_NAME, new IBaiduNaviManager.INaviInitListener());
初始化接口init详细说明如下:
/** * 初始化百度导航. * * @param context 建议是应用的context * @param sdcardRootPath 系统SD卡根目录路径 * @param appFolderName 应用在SD卡中的目录名 * @param naviInitListener 百度导航初始化监听器 */ void init(final Context context,final String sdcardRootPath,final String appFolderName,final INaviInitListener naviInitListener);
初始化结果监听详情说明如下:
通过传入的INaviInitListener 接口对象接收初始化的返回结果,其包括授权校验结果、初始化开始、成功以及失败4种情况,具体定义如下:
interface INaviInitListener {
/**
* 授权校验结果
*
* @param status 0 表示成功,其他表示失败
* @param msg 具体授权校验失败信息
*/
void onAuthResult(int status, String msg);
/**
* 百度导航初始化开始
*/
void initStart();
/**
* 百度导航初始化成功
*/
void initSuccess();
/**
* 百度导航初始化失败
*/
void initFailed(int errorCode);
}
初始化示例代码如下:
BaiduNaviManagerFactory.getBaiduNaviManager().init(this, mSDCardPath, APP_FOLDER_NAME, new IBaiduNaviManager.INaviInitListener() {
@Override
public void onAuthResult(int status, String msg) {
if (0 == status) {
authinfo = "key校验成功!";
} else {
authinfo = "key校验失败, " + msg;
}
BNNewIFNormalDemoMainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(BNNewIFNormalDemoMainActivity.this, authinfo, Toast.LENGTH_LONG).show();
}
});
}
@Override
public void initStart() {
Toast.makeText(BNNewIFNormalDemoMainActivity.this, "百度导航引擎初始化开始", Toast.LENGTH_SHORT).show();
}
@Override
public void initSuccess() {
Toast.makeText(BNNewIFNormalDemoMainActivity.this, "百度导航引擎初始化成功", Toast.LENGTH_SHORT).show();
hasInitSuccess = true;
// 初始化tts
initTTS();
}
@Override
public void initFailed(int errCode) {
Toast.makeText(BNNewIFNormalDemoMainActivity.this, "百度导航引擎初始化失败", Toast.LENGTH_SHORT).show();
}
});
初始化成功后,就可以进行后续的开发工作。
加载地图
获取百度地图底图的方法是:
// 在Activity.onCreate()或者Fragment.onCreateView中调用 BaiduNaviManagerFactory.getMapManager().getMapView();
为了使地图可以前后台切换,同时需要在生命周期onResume()和onPause()方法中分别调用:
BaiduNaviManagerFactory.getMapManager().onResume(); BaiduNaviManagerFactory.getMapManager().onPause();