启动百度或高德地图并导航_通过Intent调用百度或高德地图客户端
2014-09-01 16:37:32  By: dwtedx

我现在有这样一个需求、就是在我自己的程序中调用百度地图的客户端、并让它导航

本以为是一个很轻松的事情,谁知道网上没有相关代码、我百度官方查了一下

找到一些提示,最后通过代码的更改成功进行了调用


首页判断手机上是否有安装百度地图


//判断是否安装目标应用
private boolean isInstallByread(String packageName) {
	return new File("/data/data/" + packageName)
		.exists();
}


接下来就是通过Intent调用百度地址的代码了


Intent intent = new Intent();
//intent.setAction("android.intent.action.VIEW");
intent.setData(Uri
		.parse("baidumap://map/direction?origin=中关村&"
		+ "destination=五道口&mode=driving&region=北京"));

if (isInstallByread("com.baidu.BaiduMap")) {
	startActivity(intent); // 启动调用
	Log.e("GasStation", "百度地图客户端已经安装");
} else {
	Log.e("GasStation", "没有安装百度地图客户端");
}


另外如果有想使用更多功能的、比如搜索定位等功能、可以参考百度的官方API

在百度地图开放平台http://developer.baidu.com/map/uri-intro.htm


一般在项目里面、要尽可能是去满足多个不同的方案、所以在这个需求里面我们也得兼容高高德地图

首先还是要检测是否有安装高德地图、方法还是和上面提到的一样、调用isInstallByread 方法就ok了

下面是调用高德地图的代码


Intent intent = new Intent();
intent.setData(Uri
		.parse("androidamap://route?sourceApplication=softname" 
		+ "&slat=36.2&slon=116.1&sname=abc&dlat=36.3" 
		+ "&dlon=116.2&dname=def&dev=0&m=0&t=1&showType=1"));
// ComponentName component = new
// intent.setComponent(component)

if (isInstallByread("com.autonavi.minimap")) {
	startActivity(intent); // 启动调用
	Log.i("GasStation", "高德地图客户端已经安装");
} else {
	Log.d("GasStation", "没有安装高德地图客户端");
}
下面再给大家附上高德地图的 uri 帮助文档


http://lbs.amap.com/api/uri-api/android-uri-explain/

最后还是给大家献上源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1nhync 密码: f2t7

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+