首页 > 代码库 > 调用百度地图APP

调用百度地图APP

代码如下:
           //调起百度地图客户端
                        try {
                                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");
                                if(isInstallByread("com.baidu.BaiduMap")){
                                        startActivity(intent); //启动调用
                                         Log.e("GasStation", "百度地图客户端已经安装") ;
                                }else{
                                         Log.e("GasStation", "没有安装百度地图客户端") ;
                                }
                        } catch (URISyntaxException e) {
                                e.printStackTrace();
                        } [/mw_shl_code]
但是,若客户端没有安装了百度地图客户端就会报 No Activity.... 直接会导致程序挂掉,这是开发者不希望看到的.所以在调用之前判断该手机是否安装了百度地图客户端,我们知道百度的包名为 com.baidu.BaiduMap
所以通过下面的方法进行判断:
[mw_shl_code=java,true]/**  
         * 判断是否安装目标应用  
         * @param packageName 目标应用安装后的包名  
         * @return 是否已安装目标应用  
         */    
        private boolean isInstallByread(String packageName) {    
         return new File("/data/data/" + packageName).exists();    

        } 


使用Intent调用高德地图


 try {
                                intent = Intent.getIntent("androidamap://path?sourceApplication=GasStation&sid=BGVIS1&slat=34.264642646862&slon=108.95108518068&sname=当前位置&did=BGVIS2&dlat=36.3&dlon=116.2&dname=终点位置&dev=1&m=2&t=0");
                                if(isInstallByread("com.autonavi.minimap")){
                                        startActivity(intent); //启动调用
                                         Log.i("GasStation", "高德地图客户端已经安装") ;
                                }else{
                                         Log.d("GasStation", "没有安装高德地图客户端") ;
                                }
                        } catch (URISyntaxException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }