是谁最早开发安卓高德地图安卓开发导航软件的

当下软件园 / 汇聚当下最新最酷的软件下载站!
热门搜索:
您的位置: &
> 手机导航软件
手机导航软件
到一个陌生的地方,相信大家最怕的就是迷路了吧,如果这时候有一款手机导航软件,就能带来很大的帮助。那么哪款手机导航软件好呢?小编在这里为大家整合了一些不错的导航软件,能够提供最新的3D地图和路线导航,让你不论在哪里都能明辨方向,找到目的地。
专题应用列表
地图导航 | 6.59M
随便走是一款专门为安卓用户打造的实景导航软件。该软件能够帮助用户在“步行”场景下找路,是不是觉得很神奇,可以让你直接通过手机就可以开始实景导航,快速找到需要的地方。
地图导航 | 33.35M
亿连驾驶助手是一款专为驾驶员设计的手机导航软件。这款亿连驾驶助手app功能强大,能为用户提供实时语音对讲、实时路况信息、微信消息语音播报等实用功能,让你驾驶更轻松。
地图导航 | 17.25M
上海地铁是一款针对安卓用户开发的地铁查询软件。在上海这个大城市里,交通繁忙,而且地铁也错综复杂,用户不妨可以通过这个软件来快速掌握自己想要乘坐的地铁。
地图导航 | 19.09M
百度导航是一款为安卓用户设计的导航软件。该软件无需连接网络,0流量导航,想查就查,想走就走,可以作为自驾出行必不可少的工具,让你在全天候想走哪里就走你哪里。
地图导航 | 23.37M
锤子驾驶APP是锤子科技推出的手机地图导航应用,广大司机们可以通过锤子驾驶来快速查看地图路线。锤子驾驶安卓版界面清爽,操作便捷,还拥有音乐电台,电话等功能,让你驾驶更加的舒心。
地图导航 | 46.68M
旅图是是一款集合旅行前攻略、旅行中位置信息服务、旅行后分享的手机导航软件,支持汽车导航、步行导航,并提供全球地铁交通线路图。
地图导航 | 38.47M
百度地图手机版应用增强现实技术,开启摄像头模式,支持离线地图和好友位置共享,提供贴心的屏幕长亮和打车估价功能,通过百度地图,您可以快速进行定位;任意查找地点、商家、公交站点,同时提供多种出行路线规划。
地图导航 | 29.89M
图吧导航是由中国最大的专业地图导航服务提供商图吧最新出品!定位更快更准,分省的离线地图免费下载,采用最新的权威地图数据,提供多城市实时路况,公交地铁线/站全面查询,让用户出行更加方便。
地图导航 | 39.42M
搜狗地图作为中国电子地图服务市场的领导者,是国内最早的面向公众服务的地图网站,数据覆盖全国,近400个城市3000个区县,数千万poi信息点,提供全国的驾车路线导航,以及上百个城市的公交换乘服务,是国内首屈一指的地图查询服务平台。
地图导航 | 32.04M
高德地图app是国内的一款免费在线导航产品,它能为用户提供美食、导航、定位、公交、线路、汽车、购物推荐等各种服务。高德地图android版拥有最新胡3D地图引擎、360度旋转角度,给你带来最独特的地图视觉效果体验。
地图导航 | 17.13M
悠悠驾车是一款很专业的手机地图导航软件,该导航软件覆盖了全国近400分城市以及近3000个区县,还拥有30多万个电子眼信息,还提供了200多个城市的公交换乘服务信息,如此数据覆盖范围度怎能让你用的不省心呢!!
地图导航 | 12.32M
天翼导航是中国电信的LBS旗舰品牌,融合地图、导航、定位、路况、搜索、预定、呼叫、出行资讯、特色数据等,为用户创造智领3G的移动互联网体验,是一个极具手机特性的gps导航系统。
地图导航 | 42.83M
优驾是基于优驾车载智能感知器而开发的一款手机应用。由优驾车载智能盒子、优驾APP和优驾云组成,充分运用了现代车联网、云计算和移动互联网等前沿理念和技术,为车主提供创新的用车及驾驶服务。优驾,更懂驾驶,更懂车。
地图导航 | 1.21M
图吧地图app是一款为用户提供专业的手机地图导航软件。这款图吧地图功能强大,为用户提供精确位置定位、准确的出行线路规划、丰富的地点和公交查询等个性化实用功能,让你出行更加方便。
地图导航 | 3.88M
上海地铁通app是专门为上海地铁设计的手机导航应用,它拥有最新最权威的地铁时刻表数据,提供最精准的地铁路线查询,完全离线,让你出行无忧。
地图导航 | 11.64M
货车宝货车导航APP是一款完全免费的货车导航软件,无论是实时救援、路况信息、违章查询、车辆修理还是最近的加油站,这里统统都有,现在下载即可参与模拟导航,还在等什么?快来下载吧!
地图导航 | 12.94M
货车导航app是一款非常专业的导航软件。该软件每日更新千万条货源信息,高价好货任您挑,可以让你提前规避限高,限行,限重,禁区路段,躲避拥堵。
地图导航 | 18.26M
凯立德导航手机版是中国导航软件第一品牌凯立德公司专门为安卓手机设计的一款全新导航产品。它功能丰富、地图精确,并且结合手机的特点增添了许多互动功能,有兴趣的朋友不妨看看今天我们带给大家的使用评测。
地图导航 | 12.9M
户外助手是一款专门为安卓用户打造的户外记录软件。该软件能够帮助用户来通过轨迹来记录自己在路上的感悟文字、美景图片、声音语音、趣事视频等等,完成后就可以和你的好友一起来分享啦。
地图导航 | 33.74M
观致逸云app是一款专业的用车宝典。该软件内置了云导航、云管家、云分享功能,可以让你随时掌握车辆信息,让你出门在外尽享行车乐趣。
地图导航 | 33.41M
车托帮是一款由车托帮(北京)移动科技有限公司携手百万车友为安卓手机用户打造的手机应用软件,该软件为车友们提供了最新最全最准确的全国电子眼信息,是车友们出行的贴身伴侣。
地图导航 | 31.68M
乐驾云图app是一款专门为安卓用户设计的手机导航软件。该软件能够让用户随时、随地掌控爱车,支持快速了解实时路况,让你的出行更加方便。
地图导航 | 10.97M
微见是一款专注于记录个人安全出行的移动定位软件,它拥有定位+导航+足迹+区域设置四重保护功能,让你的出行变得简单、时尚却又不失安全。微见是目前定位最准确、最强大、用户最广泛的一款应用,没有之一。
地图导航 | 3.53M
极豆是一款专为用户设计的非常实用的手机导航软件。用户下载之后可以直接在手机上进行导航,还可以进行找车、防盗提醒等功能的操作。用户可以使用远程导航的功能快速找到自己想要去的导航目的地。
地图导航 | 27.16M
导航犬 for Android 是一款极具手机特性的在线式gps导航系统,为您提供从当前位置到目的地的实时语音图像导航服务,将手机的电话、短信等功能完美集成,倡导"gps/在线式服务/完美的lbs体验"理念。
地图导航 | 18.21M
百度导航HD for Apad 是专门为安卓平板设计的大屏幕的导航应用,让地图展现的更加的全面,完美大屏幕展现,百度导航apad版拥有智能的语音提醒以及多路线规划选择功能,而且可以开启巡航模式并及时提醒电子眼,让你更加轻松的开车。
地图导航 | 2.52M
微导航 for android是一款为安卓用户进行打造的微信公众号导航应用。该软件可以帮助用户提供最实用、最热门、最有趣的微信号,同时可以进行一键关注公众号。
地图导航 | 11.47M
泰为导航 for android 是一款可以帮助安卓手机用户地图导航的手机应用软件,该软件在北美是70%用户的选择,以其强大的功能,简便的操作征服了无数安卓用户。
地图导航 | 10.22M
导航小蜜 for android 是一款由图为先科技为安卓手机用户倾心打造的手机驾车导航软件,该软件可以让用户快速定位,一键抵达目的地。即使没有车也可以使用,很多出租车师傅不识得路或者喜欢饶弯路,那么用户就可以使用这款软件来确保司机师傅走上正确的路。
Copyright (C)
.All rights reserved.Android studio 百度地图开发分析(3)地图导航
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和定位服务
第三步: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 activityList = new LinkedList();
* 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 list = new ArrayList();
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 items = new ArrayList();
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中)总之,不管多难,不要轻易放弃,问题始终是可以解决的。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'}

我要回帖

更多关于 高德地图安卓开发 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信