標籤:des android style color java 使用 os io
代碼如下:
//調起百度地圖用戶端
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();
}