Android 開啓百度客戶端的導航系統

調用百度的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
高德地圖類似
發佈了51 篇原創文章 · 獲贊 12 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章