第三方调用高德地图导航实现导航功能

主要实现的逻辑:首先判断当前设备是否安装高德地图客户端,如果检测到已安装高德地图客户端,则通过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;

}

}

总结:这里只对高德地图导航做实现,实际上是不够的,因为不是每个用户都是安装高德地图客户端,也有可能安装了百度地图或者是腾讯地图的客户端,这时如果想支持多种,可以通过dialog弹窗给用户提供三种选择,这样用户可根据自己设备已安装的客户端去打开!

你可能感兴趣的:(第三方调用高德地图导航实现导航功能)