meta8 百度导航引擎初始化引擎失败失败怎么办

涨姿势!手机端的meta你知道多少?
优秀网页设计联盟-SDC-网页设计师交流平台-听讲座,聊设计,找素材,尽在优设网
& / & & / & 正文
Hi,我是优设小编
涨姿势!手机端的meta你知道多少?
benpao:本来打算写关于手机端的知识,想了想先从着手。接下来请大家看几个网站的例子。
Web 前端工具分享:
&title&天猫触屏版&/title&
& content="text/ charset=utf-8" http-equiv="Content-Type"&
&meta charset="utf-8"&
&meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"&
&meta content="yes" name="apple-mobile-web-app-capable"&
&meta content="black" name="apple-mobile-web-app-status-bar-style"&
&meta content="telephone=no" name="format-detection"&
&title&淘宝网触屏版&/title&
&meta charset="utf-8"&
&meta content="yes" name="apple-mobile-web-app-capable"&
&meta content="yes" name="apple-touch-fullscreen"&
&meta content="telephone=no" name="format-detection"&
&meta content="black" name="apple-mobile-web-app-status-bar-style"&
&meta property="wb:webmaster" content="ceb1"&
&meta name="author" content=""&
&meta name="copyright" content="Copyright (C) 版权所有"&
&meta name="revisit-after" content="1 days"&
&meta name="keywords" content=""&
&meta name="description" content=""&
&title& 京东 - 手机版 &/title&
&meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;"&
&meta name="format-detection" content="telephone=no"&
&meta name="Keywords" content="手机购物,WAP商城,日用百货,3C家电,汽车用品"&&meta name="description" content="京东手机版提供了包括数码、家电、手机、电脑配件、网络产品、日用百货等数万种商品,手机快捷购物,就上京东手机版。"&
&title&手机网易网&/title&
&meta charset="UTF-8"&
&meta content="width=device-width,user-scalable=no" name="viewport"&
&meta name="apple-itunes-app" content="app-id="&
&meta name="apple-mobile-web-app-capable" content="yes"&
&meta http-equiv="Content-Type" content="text/ charset=utf-8"&
&meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"&
&meta name="format-detection" content="telephone=no"&
meta指元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。 标签位于文档的头部,不包含任何内容。 标签的属性定义了与文档相关联的名称/值对。
手机端特有的有哪些?
&meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"&
&meta content="yes" name="apple-mobile-web-app-capable"&
&meta content="black" name="apple-mobile-web-app-status-bar-style"&
&meta content="telephone=no" name="format-detection"&
第一个meta标签表示:强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览;
width - viewport的宽度 height - viewport的高度
initial-scale - 初始的缩放比例
minimum-scale - 允许用户缩放到的最小比例
maximum-scale - 允许用户缩放到的最大比例
user-scalable - 用户是否可以手动缩放
第二个meta标签是iphone设备中的safari私有meta标签,它表示:允许全屏模式浏览;
第三个meta标签也是iphone的私有标签,它指定的iphone中safari顶端的状态条的样式;
在web app应用下状态条(屏幕顶部条)的颜色;
默认值为default(白色),可以定为black(黑色)和black-translucent(灰色半透明)。
注意:若值为“black-translucent”将会占据页面px位置,浮在页面上方(会覆盖页面20px高度–iphone4和itouch4的Retina屏幕为40px)。
第四个meta标签表示:告诉设备忽略将页面中的数字识别为电话号码。
原文地址:
作者:benpao
【优设网 原创文章 投稿邮箱:】
================关于优设网================
“优设网“是一个分享网页设计、以及PS教程的干货网站。
【特色推荐】
PS礼仪手册:网页设计师必须修炼的内功技法,更是不可或缺的WEB设计指南。
设计微博:拥有粉丝量65万的人气微博 ,欢迎关注获取网页设计资源、下载顶尖设计素材。
设计导航:全球顶尖设计网站推荐,设计师必备导航:
———————————————————–
想在手机上、被窝里获取设计教程、经验分享和各种意想不到的”福利”吗?
添加 优秀网页设计 微信号:【youshege】优设哥的全拼
您也可以通过扫描下方二维码快速添加:
订阅更新:您可以通过
【推荐!设计师必备网址导航】
我们的团队
大家在关注2581人阅读
【移动开发】(31)
Android studio 百度地图开发(3)地图导航
&&&&&开发环境:win7 64位,Android Studio,请注意是Android Studio,使用的导航SDK版本:3.1.0。
&&&&&地图显示、工程配置请参考:
&&&&百度地图定位请参考:
一.我为百度做点事
&&&&&& 因为在写定位功能时自己想从头到尾地写,但最后完全是参考了百度官网上的Demo才弄出来,后来发现用Android Studio做导航的资料太少了,于是这次写导航功能的时候就直接参考了百度Demo。但是问题依旧,开始使用了百度的RoutePlanDemo.java这个Demo,发现有几个包找不到,捣腾了很久没有成功,最后甚至准备用Myclipse试试,结果配置环境的时候还把MyEclipse玩坏了,重装!实在怀疑自己解决问题的能力,百般无奈之下,还是回到了Android
Studio,静下心来分析问题出在了哪里:是不是本身SDK3.1.0里就没有这几个包了呢?果然,我打开jar包一看,没有。欣喜,换了导航SDK3.1.0中的Demo+SDK3.1.0,于是,导航就真正开始了。下面的代码都来自百度Demo,我只是自己理解了一番,后面将结合第二部分的地图定位和这部分的导航功能,自己再写一个可以实现手动选择起点和终点的Demo出来,喜欢吐槽的朋友请键盘留情,然后悄悄飘过吧。
&&&&&&& 一直以来都是喜欢百度的,尽管百度的的确确不能和Google比。但是,在中国的科技氛围里,我觉得百度已经够好了,所以也贴一点百度地图导航SDK的功能介绍。
&&&&&&& 最后,我想问问那些嘴里骂着百度心里又离不开百度的朋友:你为中国的科技、IT、社会做了什么?
二.导航SDK的应用
&&&&&&&& 请注意:代码来自百度官方Demo。
&&&&&&&& 导航SDK版本:BaiDuNaviSDK_3.1.0.jar和httpmime-4.1.2.jar
&&&&&&&& IDE:Android Studio
第一步:工程配置
这部分看似简单,没有关于Android Studio版的官方教程,真的很麻烦。
(1)将BaiDuNaviSDK_3.1.0.jar和httpmime-4.1.2.jar复制到/libs文件夹下;
(2)方法一:右键这两个jar包:add as library-&确定;
&&&&&&&&& 方法二:打开build.gradle,在dependencies中增加:
compile files('libs/httpmime-4.1.2.jar')
compile files('libs/BaiduNaviSDK_3.1.0.jar')
(3)在/src/main文件夹下新建assets,添加BaiduNaviSDK_Resource_X_X.png, BaiduNaviSDK _X_X.png和chanel文件【这三个文件可以在Demo中找到,直接复制过来就ok】
(4)在src/main/JNIlibs/armeabi-v7a中【不是armeabi】都添加:libapp_BaiduNaviApplib.so、libapp_BaiduVIlib.so、libcurl.so、libgnustl_shared.so、
libbds.so、 libbd_etts.so 、libBDSpeechDecoder_V1.so
第二步:AndroidManifest.xml:增加权限、注册activity、API_KEY和定位服务
&?xml version=&1.0& encoding=&utf-8&?&
&manifest xmlns:android=&/apk/res/android&
package=&intvehapp.intvehapp& &
&!-- 百度地图API所需权限 --&
&uses-permission android:name=&android.permission.GET_ACCOUNTS& /&
&uses-permission android:name=&android.permission.USE_CREDENTIALS& /&
&uses-permission android:name=&android.permission.MANAGE_ACCOUNTS& /&
&uses-permission android:name=&android.permission.AUTHENTICATE_ACCOUNTS& /&
&uses-permission android:name=&android.permission.ACCESS_NETWORK_STATE& /&
&uses-permission android:name=&android.permission.INTERNET& /&
&uses-permission android:name=&com.android.launcher.permission.READ_SETTINGS& /&
&uses-permission android:name=&android.permission.CHANGE_WIFI_STATE& /&
&uses-permission android:name=&android.permission.ACCESS_WIFI_STATE& /&
&uses-permission android:name=&android.permission.READ_PHONE_STATE& /&
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE& /&
&uses-permission android:name=&android.permission.BROADCAST_STICKY& /&
&uses-permission android:name=&android.permission.WRITE_SETTINGS& /&
&uses-permission android:name=&android.permission.ACCESS_COARSE_LOCATION& /&
&!-- 访问精确位置的权限 --&
&uses-permission android:name=&android.permission.ACCESS_FINE_LOCATION& /&
&!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? --&
&uses-permission android:name=&android.permission.GET_TASKS& /&
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE& /&
&uses-permission android:name=&android.permission.BROADCAST_STICKY& /&
&uses-permission android:name=&android.permission.WRITE_SETTINGS& /&
&!-- 来电消音 --&
&uses-permission android:name=&android.permission.PROCESS_OUTGOING_CALLS& /&
&uses-permission android:name=&android.permission.READ_PHONE_STATE& /&
&uses-permission android:name=&android.permission.MODIFY_AUDIO_SETTINGS& /&
&uses-permission android:name=&android.permission.RECORD_AUDIO& /&
&!-- 摄影机 --&
&uses-permission android:name=&android.permission.CAMERA& /&
&application
android:allowBackup=&true&
android:icon=&@mipmap/ic_launcher&
android:label=&@string/app_name&
android:supportsRtl=&true&
android:theme=&@style/AppTheme& &
&activity android:name=&.BNDemoMainActivity& &
&intent-filter&
&action android:name=&android.intent.action.MAIN& /&
&category android:name=&android.intent.category.LAUNCHER& /&
&/intent-filter&
&/activity&
&!--百度API_KEY--&
&meta-data
android:name=&com.baidu.lbsapi.API_KEY&
android:value=&iXDGdZtFiPifnNm6dUEFwDRXYQVeZ37V& /&
&!--百度定位服务--&
android:name=&com.baidu.location.f&
android:enabled=&true&
android:process=&:remote& &
&/service&
&!--注册activity--&
&activity android:name=&.BNDemoGuideActivity& /&
&/application&
&/manifest&
第三步:BNDemoMainActivity.java
package intvehapp.
import java.io.F
import java.util.ArrayL
import java.util.LinkedL
import java.util.L
import com.baidu.navisdk.adapter.BNOuterLogU
import com.baidu.navisdk.adapter.BNOuterTTSPlayerC
import com.baidu.navisdk.adapter.BNRoutePlanN
import com.baidu.navisdk.adapter.BNRoutePlanNode.CoordinateT
import com.baidu.navisdk.adapter.BNaviSettingM
import com.baidu.navisdk.adapter.BaiduNaviM
import com.baidu.navisdk.adapter.BaiduNaviManager.NaviInitL
import com.baidu.navisdk.adapter.BaiduNaviManager.RoutePlanL
import android.app.A
import android.content.I
import android.os.B
import android.os.E
import android.os.H
import android.os.M
import android.util.L
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.T
public class BNDemoMainActivity extends Activity {
public static List&Activity& activityList = new LinkedList&Activity&();
* App在SD卡中的目录名
private static final String APP_FOLDER_NAME = &intvehapp&;
* 4个按钮控件
private Button mWgsNaviBtn =
private Button mGcjNaviBtn =
private Button mBdmcNaviBtn =
private Button mDb06ll =
* SD卡的路径
private String mSDCardPath =
public static final String ROUTE_PLAN_NODE = &routePlanNode&;
public static final String SHOW_CUSTOM_ITEM = &showCustomItem&;
public static final String RESET_END_NODE = &resetEndNode&;
public static final String VOID_MODE = &voidMode&;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
activityList.add(this);
setContentView(R.layout.activity_main_guide);
* 获取按钮控件
mWgsNaviBtn = (Button) findViewById(R.id.wgsNaviBtn);
mGcjNaviBtn = (Button) findViewById(R.id.gcjNaviBtn);
mBdmcNaviBtn = (Button) findViewById(R.id.bdmcNaviBtn);
mDb06ll = (Button) findViewById(R.id.mDb06llNaviBtn);
BNOuterLogUtil.setLogSwitcher(true);
* 初始化按钮监听函数
initListener();
if (initDirs()) {
* 使用SDK前,先进行百度服务授权和引擎初始化。
initNavi();
BNOuterLogUtil.setLogSwitcher(true);
protected void onResume() {
super.onResume();
* 为每一个按钮控件增加点击监听事件,增加算路节点
private void initListener() {
if (mWgsNaviBtn != null) {
mWgsNaviBtn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
* 判断百度导航是否初始化
if (BaiduNaviManager.isNaviInited()) {
* 添加起点、终点
routeplanToNavi(CoordinateType.WGS84);
if (mGcjNaviBtn != null) {
mGcjNaviBtn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if (BaiduNaviManager.isNaviInited()) {
routeplanToNavi(CoordinateType.GCJ02);
if (mBdmcNaviBtn != null) {
mBdmcNaviBtn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if (BaiduNaviManager.isNaviInited()) {
routeplanToNavi(CoordinateType.BD09_MC);
if (mDb06ll != null) {
mDb06ll.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if (BaiduNaviManager.isNaviInited()) {
routeplanToNavi(CoordinateType.BD09LL);
* 初始化SD卡,在SD卡路径下新建文件夹:App目录名,文件中包含了很多东西,比如log、cache等等
private boolean initDirs() {
mSDCardPath = getSdcardDir();
if (mSDCardPath == null) {
File f = new File(mSDCardPath, APP_FOLDER_NAME);
if (!f.exists()) {
f.mkdir();
} catch (Exception e) {
e.printStackTrace();
String authinfo =
* 内部TTS播报状态回传handler
private Handler ttsHandler = new Handler() {
public void handleMessage(Message msg) {
int type = msg.
switch (type) {
case BaiduNaviManager.TTSPlayMsgType.PLAY_START_MSG: {
showToastMsg(&Handler : TTS play start&);
case BaiduNaviManager.TTSPlayMsgType.PLAY_END_MSG: {
showToastMsg(&Handler : TTS play end&);
* 内部TTS播报状态回调接口
private BaiduNaviManager.TTSPlayStateListener ttsPlayStateListener = new BaiduNaviManager.TTSPlayStateListener() {
public void playEnd() {
showToastMsg(&TTSPlayStateListener : TTS play end&);
public void playStart() {
showToastMsg(&TTSPlayStateListener : TTS play start&);
public void showToastMsg(final String msg) {
BNDemoMainActivity.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(BNDemoMainActivity.this, msg, Toast.LENGTH_SHORT).show();
* 使用SDK前,先进行百度服务授权和引擎初始化
private void initNavi() {
BNOuterTTSPlayerCallback ttsCallback =
BaiduNaviManager.getInstance().init(this, mSDCardPath, APP_FOLDER_NAME, new NaviInitListener() {
public void onAuthResult(int status, String msg) {
if (0 == status) {
authinfo = &key校验成功!&;
authinfo = &key校验失败, & +
BNDemoMainActivity.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(BNDemoMainActivity.this, authinfo, Toast.LENGTH_LONG).show();
public void initSuccess() {
Toast.makeText(BNDemoMainActivity.this, &百度导航引擎初始化成功&, Toast.LENGTH_SHORT).show();
initSetting();
public void initStart() {
Toast.makeText(BNDemoMainActivity.this, &百度导航引擎初始化开始&, Toast.LENGTH_SHORT).show();
public void initFailed() {
Toast.makeText(BNDemoMainActivity.this, &百度导航引擎初始化失败&, Toast.LENGTH_SHORT).show();
null, ttsHandler, null);
private String getSdcardDir() {
if (Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED)) {
return Environment.getExternalStorageDirectory().toString();
* 算路设置起、终点,算路偏好,是否模拟导航等参数,然后在回调函数中设置跳转至诱导。
* @param coType
private void routeplanToNavi(CoordinateType coType) {
BNRoutePlanNode sNode =
BNRoutePlanNode eNode =
switch (coType) {
case GCJ02: {
sNode = new BNRoutePlanNode(116.387, &百度大厦&, null, coType);
eNode = new BNRoutePlanNode(116.382, &北京天安门&, null, coType);
case WGS84: {
sNode = new BNRoutePlanNode(116..050969, &百度大厦&, null, coType);
eNode = new BNRoutePlanNode(116..908749, &北京天安门&, null, coType);
case BD09_MC: {
sNode = new BNRoutePlanNode(46474, &百度大厦&, null, coType);
eNode = new BNRoutePlanNode(25947, &北京天安门&, null, coType);
case BD09LL: {
sNode = new BNRoutePlanNode(116.82, 40.436, &百度大厦&, null, coType);
eNode = new BNRoutePlanNode(116.37, 39.085, &北京天安门&, null, coType);
if (sNode != null && eNode != null) {
List&BNRoutePlanNode& list = new ArrayList&BNRoutePlanNode&();
list.add(sNode);
list.add(eNode);
* 发起算路操作并在算路成功后通过回调监听器进入导航过程,返回是否执行成功
BaiduNaviManager
.getInstance()
.launchNavigator(
//建议是应用的主Activity
//传入的算路节点,顺序是起点、途经点、终点,其中途经点最多三个
//算路偏好 1:推荐 8:少收费 2:高速优先 4:少走高速 16:躲避拥堵
//true表示真实GPS导航,false表示模拟导航
new DemoRoutePlanListener(sNode)//开始导航回调监听器,在该监听器里一般是进入导航过程页面
* 导航回调监听器
public class DemoRoutePlanListener implements RoutePlanListener {
private BNRoutePlanNode mBNRoutePlanNode =
public DemoRoutePlanListener(BNRoutePlanNode node) {
mBNRoutePlanNode =
public void onJumpToNavigator() {
* 设置途径点以及resetEndNode会回调该接口
for (Activity ac : activityList) {
if (ac.getClass().getName().endsWith(&BNDemoGuideActivity&)) {
* 导航activity
Intent intent = new Intent(BNDemoMainActivity.this, BNDemoGuideActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable(ROUTE_PLAN_NODE, (BNRoutePlanNode) mBNRoutePlanNode);
intent.putExtras(bundle);
startActivity(intent);
public void onRoutePlanFailed() {
// TODO Auto-generated method stub
Toast.makeText(BNDemoMainActivity.this, &算路失败&, Toast.LENGTH_SHORT).show();
* 导航设置管理器
private void initSetting(){
* 日夜模式 1:自动模式 2:白天模式 3:夜间模式
BNaviSettingManager.setDayNightMode(BNaviSettingManager.DayNightMode.DAY_NIGHT_MODE_DAY);
* 设置全程路况显示
BNaviSettingManager.setShowTotalRoadConditionBar(BNaviSettingManager.PreViewRoadCondition.ROAD_CONDITION_BAR_SHOW_ON);
* 设置语音播报模式
BNaviSettingManager.setVoiceMode(BNaviSettingManager.VoiceMode.Veteran);
* 设置省电模式
BNaviSettingManager.setPowerSaveMode(BNaviSettingManager.PowerSaveMode.DISABLE_MODE);
* 设置实时路况条
BNaviSettingManager.setRealRoadCondition(BNaviSettingManager.RealRoadCondition.NAVI_ITS_ON);
private BNOuterTTSPlayerCallback mTTSCallback = new BNOuterTTSPlayerCallback() {
public void stopTTS() {
// TODO Auto-generated method stub
Log.e(&test_TTS&, &stopTTS&);
public void resumeTTS() {
// TODO Auto-generated method stub
Log.e(&test_TTS&, &resumeTTS&);
public void releaseTTSPlayer() {
// TODO Auto-generated method stub
Log.e(&test_TTS&, &releaseTTSPlayer&);
public int playTTSText(String speech, int bPreempt) {
// TODO Auto-generated method stub
Log.e(&test_TTS&, &playTTSText& + &_& + speech + &_& + bPreempt);
public void phoneHangUp() {
// TODO Auto-generated method stub
Log.e(&test_TTS&, &phoneHangUp&);
public void phoneCalling() {
// TODO Auto-generated method stub
Log.e(&test_TTS&, &phoneCalling&);
public void pauseTTS() {
// TODO Auto-generated method stub
Log.e(&test_TTS&, &pauseTTS&);
public void initTTSPlayer() {
// TODO Auto-generated method stub
Log.e(&test_TTS&, &initTTSPlayer&);
public int getTTSState() {
// TODO Auto-generated method stub
Log.e(&test_TTS&, &getTTSState&);
第四步:BNDemoGuideActivity.java
package intvehapp.
import java.util.ArrayL
import java.util.L
import com.baidu.navisdk.adapter.BNRouteGuideM
import com.baidu.navisdk.adapter.BNRouteGuideManager.CustomizedLayerI
import com.baidu.navisdk.adapter.BNRouteGuideManager.OnNavigationL
import com.baidu.navisdk.adapter.BNRoutePlanN
import com.baidu.navisdk.adapter.BNaviBaseCallbackM
import com.baidu.navisdk.adapter.BaiduNaviCommonM
import com.baidu.navisdk.adapter.NaviModuleF
import com.baidu.navisdk.adapter.NaviModuleI
import com.baidu.navisdk.adapter.BNRoutePlanNode.CoordinateT
import android.app.A
import android.content.I
import android.os.B
import android.os.B
import android.os.H
import android.util.L
import android.view.V
* 诱导界面
* @author sunhao04
public class BNDemoGuideActivity extends Activity {
private final String TAG = BNDemoGuideActivity.class.getName();
private BNRoutePlanNode mBNRoutePlanNode =
private BaiduNaviCommonModule mBaiduNaviCommonModule =
* 对于导航模块有两种方式来实现发起导航。 1:使用通用接口来实现 2:使用传统接口来实现
// 是否使用通用接口
private boolean useCommonInterface =
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BNDemoMainActivity.activityList.add(this);
createHandler();
if (Build.VERSION.SDK_INT &= Build.VERSION_CODES.HONEYCOMB) {
View view =
if (useCommonInterface) {
//使用通用接口
mBaiduNaviCommonModule = NaviModuleFactory.getNaviModuleManager().getNaviCommonModule(
NaviModuleImpl.BNaviCommonModuleConstants.ROUTE_GUIDE_MODULE, this,
BNaviBaseCallbackModel.BNaviBaseCallbackConstants.CALLBACK_ROUTEGUIDE_TYPE, mOnNavigationListener);
if(mBaiduNaviCommonModule != null) {
mBaiduNaviCommonModule.onCreate();
view = mBaiduNaviCommonModule.getView();
//使用传统接口
view = BNRouteGuideManager.getInstance().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(BNDemoMainActivity.ROUTE_PLAN_NODE);
protected void onResume() {
super.onResume();
if(useCommonInterface) {
if(mBaiduNaviCommonModule != null) {
mBaiduNaviCommonModule.onResume();
BNRouteGuideManager.getInstance().onResume();
if (hd != null) {
hd.sendEmptyMessageAtTime(MSG_SHOW, 2000);
protected void onPause() {
super.onPause();
if(useCommonInterface) {
if(mBaiduNaviCommonModule != null) {
mBaiduNaviCommonModule.onPause();
BNRouteGuideManager.getInstance().onPause();
protected void onDestroy() {
super.onDestroy();
if(useCommonInterface) {
if(mBaiduNaviCommonModule != null) {
mBaiduNaviCommonModule.onDestroy();
BNRouteGuideManager.getInstance().onDestroy();
BNDemoMainActivity.activityList.remove(this);
protected void onStop() {
super.onStop();
if(useCommonInterface) {
if(mBaiduNaviCommonModule != null) {
mBaiduNaviCommonModule.onStop();
BNRouteGuideManager.getInstance().onStop();
public void onBackPressed() {
if(useCommonInterface) {
if(mBaiduNaviCommonModule != null) {
mBaiduNaviCommonModule.onBackPressed(false);
BNRouteGuideManager.getInstance().onBackPressed(false);
public void onConfigurationChanged(android.content.res.Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(useCommonInterface) {
if(mBaiduNaviCommonModule != null) {
mBaiduNaviCommonModule.onConfigurationChanged(newConfig);
BNRouteGuideManager.getInstance().onConfigurationChanged(newConfig);
private void addCustomizedLayerItems() {
List&CustomizedLayerItem& items = new ArrayList&CustomizedLayerItem&();
CustomizedLayerItem item1 =
if (mBNRoutePlanNode != null) {
item1 = new CustomizedLayerItem(mBNRoutePlanNode.getLongitude(), mBNRoutePlanNode.getLatitude(),
mBNRoutePlanNode.getCoordinateType(), getResources().getDrawable(R.drawable.ic_launcher),
CustomizedLayerItem.ALIGN_CENTER);
items.add(item1);
BNRouteGuideManager.getInstance().setCustomizedLayerItems(items);
BNRouteGuideManager.getInstance().showCustomizedLayer(true);
private static final int MSG_SHOW = 1;
private static final int MSG_HIDE = 2;
private static final int MSG_RESET_NODE = 3;
private Handler hd =
private void createHandler() {
if (hd == null) {
hd = new Handler(getMainLooper()) {
public void handleMessage(android.os.Message msg) {
if (msg.what == MSG_SHOW) {
addCustomizedLayerItems();
} else if (msg.what == MSG_HIDE) {
BNRouteGuideManager.getInstance().showCustomizedLayer(false);
} else if (msg.what == MSG_RESET_NODE) {
BNRouteGuideManager.getInstance().resetEndNodeInNavi(
new BNRoutePlanNode(116.287, &百度大厦11&, null, CoordinateType.GCJ02));
private OnNavigationListener mOnNavigationListener = new OnNavigationListener() {
public void onNaviGuideEnd() {
public void notifyOtherAction(int actionType, int arg1, int arg2, Object obj) {
if (actionType == 0) {
Log.i(TAG, &notifyOtherAction actionType = & + actionType + &,导航到达目的地!&);
Log.i(TAG, &actionType:& + actionType + &arg1:& + arg1 + &arg2:& + arg2 + &obj:& + obj.toString());
第五步:Run看效果
三.个人理解
&&&&&&&& 目前Run起来后还有点问题,比如还没发现语音播报这个可不可以。
&&&&&&& 单从这个Demo来看,导航功能实现起来并不会复杂,百度服务授权和引擎初始化成功后,主要是传入起点、终点、途经点等需要计算的节点,然后在回调函数中进入导航回调监听器,然后进入诱导界面。后面还有很多地方可以个性化修改或者按照自己的需要进行功能完善,这便是后面我需要做的工作了。
&&&&& 可能第一次用Android Studio做百度地图真的会遇到不少问题,比如SDK版本和.so文件(需要添加到armeabi-v7a文件夹中而不是armeabi中)总之,不管多难,不要轻易放弃,问题始终是可以解决的。
问题描述:百度导航引擎初始化失败!是的,失败!始终失败!似乎什么都配置对了,但是始终初始化失败!
解决方案:请注意上面的第一步工程配置的第三项!!!BaiduNaviSDK_Resource_3.1.0.png文件至关重要!因为它不是一个简单的png图片,而是一个名副其实的压缩包,将后缀改为.zip就可以解压看到里面压缩了很多资源:对于这一点,我只想说,这个坑。。。百度挖的太深了,搞不懂百度这么做的意图,也许好好看看这个解压后的工程就知道了~不过如果按照我上面的配置流程,是不会出现这个初始化失败的问题的~
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:123841次
积分:2368
积分:2368
排名:第11825名
原创:105篇
评论:85条
文章:32篇
阅读:59500
文章:17篇
阅读:9761
文章:14篇
阅读:16447
(3)(3)(1)(13)(9)(6)(2)(4)(7)(5)(3)(5)(5)(1)(3)(13)(9)(4)(4)(7)(1)(1)(2)

我要回帖

更多关于 鲁大师初始化引擎失败 的文章

 

随机推荐