android 調用百度地圖用戶端,

來源:互聯網
上載者:User

標籤:des   android   style   http   os   io   使用   java   ar   

以前都是使用百度API在軟體裡面做一個百度地圖出來這樣感覺既浪費時間又浪費精力,這裡就教大家直接使用Intent的方式調用手機上安裝的百度地圖用戶端,訪問我們所需要的路徑規劃等,
//調起百度地圖用戶端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();}

但是,若用戶端沒有安裝了百度地圖用戶端就會報 No Activity.... 直接會導致程式掛掉,這是開發人員不希望看到的.所以在調用之前判斷該手機是否安裝了百度地圖用戶端,我們知道百度的包名為 com.baidu.BaiduMap
所以通過下面的方法進行判斷:

/**   * 判斷是否安裝目標應用   * @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");



開源中國好像沒有地方上傳附件,比如項目什麼的。這個有點鬱悶,高德就自行尋找下URL-API吧



android 調用百度地圖用戶端,

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.