Android 开启百度客户端的导航系统

来源:互联网 发布:编程笔记本推荐 编辑:程序博客网 时间:2024/06/03 22:51

调用百度的API,实现一些功能,比较复杂,直接使用Intent的方式调用手机上安装的百度地图客户端,访问我们所需要的路径规划等,比较方便。

public void navigate(View view) {// 调起百度地图客户端try {// Intent intent =// Intent.getIntent("intent://map/direction?origin=latlng:34.264642646862,108.95108518068|name:我家&destination=大雁塔&mode=driving®ion=西安&referer=Autohome|GasStation#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");Intent intent = Intent.getIntent("intent://map/direction?origin=latlng:"+ GPSService.lat+ ","+ GPSService.nat+ "<经度>|name:"+GPSService.add+"&destination="+endStr+"&mode=driving&region=北京&src=com.rongzhitong_1#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");if (isInstallByread("com.baidu.BaiduMap")) {startActivity(intent); // 启动调用Log.e("GasStation", "百度地图客户端已经安装");} else {Toast.makeText(getApplicationContext(), "请安装百度地图客户端", 0).show();Log.e("GasStation", "没有安装百度地图客户端");// BaiduMapNavigation.GetLatestBaiduMapApp(RoutePlanDemo.this);}} catch (Exception e) {e.printStackTrace();}}
但是,若客户端没有安装了百度地图客户端就会报 No Activity.... 直接会导致程序挂掉,这是开发者不希望看到的.所以在调用之前判断该手机是否安装了百度地图客户端,我们知道百度的包名为 com.baidu.BaiduMap
所以通过下面的方法进行判断:
/** * 判断是否安装目标应用 *  * @param packageName *            目标应用安装后的包名 * @return 是否已安装目标应用 */private boolean isInstallByread(String packageName) {return new File("/data/data/" + packageName).exists();}
我们可以根据配置不同的url的参数,开启不同的功能。
我的intent是做导航用的。其他地图功能自行实现(其他功能需要的话就自行参考百度URL-API)。附上链接: http://developer.baidu.com/map/uri-intro.htm#idmykey1
高德地图类似

1 0
原创粉丝点击