android 呼叫百度地圖客戶端,
阿新 • • 發佈:2019-01-09
以前都是使用百度API在軟體裡面做一個百度地圖出來這樣感覺既浪費時間又浪費精力,這裡就教大家直接使用Intent的方式呼叫手機上安裝的百度地圖客戶端,訪問我們所需要的路徑規劃等,
但是,若客戶端沒有安裝了百度地圖客戶端就會報 No Activity.... 直接會導致程式掛掉,這是開發者不希望看到的.所以在呼叫之前判斷該手機是否安裝了百度地圖客戶端,我們知道百度的包名為 com.baidu.BaiduMap//調起百度地圖客戶端 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(); }
所以通過下面的方法進行判斷:
我們就可以靈活的去呼叫百度地圖了。/** * 判斷是否安裝目標應用 * @param packageName 目標應用安裝後的包名 * @return 是否已安裝目標應用 */ private boolean isInstallByread(String packageName) { return new File("/data/data/" + packageName).exists(); }
我的intent是做導航用的。其他地圖功能自行實現(其他功能需要的話就自行參考百度URL-API)。附上鍊接:http://developer.baidu.com/map/uri-intro.htm#idmykey1
呼叫高德地圖:(其他寫法都是相同只是URL-API不同)
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");