主要实现的逻辑:首先判断当前设备是否安装高德地图客户端,如果检测到已安装高德地图客户端,则通过Intent方式拼接uri去启动第三方应用,如果检测到没有安装客户端则提示用户。
核心代码
if(isInstallByread("com.autonavi.minimap")) {
Intent intentOther = new Intent( "android.intent.action.VIEW", android.net.Uri .parse("androidamap://navi?sourceApplication=amap&lat="目的地的纬度值"&lon="目的地的经度值"&dev=1&stype=0")); intentOther.setPackage("com.autonavi.minimap"); startActivity(intentOther);
}else{
ToastHelper.showToast( AllPointMapActivity.this, "没有安装高德地图客户端"); }
判断设备是否安装高德地图客户端
/**
* 判断是否安装目标应用
* @param packageName
* 目标应用安装后的包名
* @return 是否已安装目标应用
*/
private boolean isInstallByread(String packageName) {
PackageInfo packageInfo;
try {
packageInfo = this.getPackageManager().getPackageInfo(packageName, 0);
} catch (PackageManager.NameNotFoundException e) {
packageInfo = null;
e.printStackTrace();
}
if(packageInfo ==null){
return false;
}else{
return true;
}
}