启动百度或高德地图并导航_通过Intent调用百度或高德地图客户端
程序员文章站
2022-03-01 16:03:56
...
我现在有这样一个需求、就是在我自己的程序中调用百度地图的客户端、并让它导航
本以为是一个很轻松的事情,谁知道网上没有相关代码、我百度官方查了一下
找到一些提示,最后通过代码的更改成功进行了调用
首页判断手机上是否有安装百度地图
//判断是否安装目标应用 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®ion=北京")); 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