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

主要实现的逻辑:首先判断当前设备是否安装高德地图客户端,如果检测到已安装高德地图客户端,则通过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弹窗给用户提供三种选择,这样用户可根据自己设备已安装的客户端去打开!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、调用高德地图 高德地图应用包名:com.autonavi.minimap 高德地图url说明: http://...
    Shelton_Kevin阅读 3,122评论 1 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,001评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,637评论 25 708
  • 最近公司项目中用到类似的功能,记录一下,权当笔记吧,能帮到其他人也算是功德一件了。 1.准备工作。由于我们需要判断...
    Joseph_L阅读 9,355评论 4 14
  • 像个孩子一样 贪恋被宠爱的感觉 每一个温柔的眼神 每一次温暖的拥抱 那不是什么 那什么也不是 它就像你走在路上 遇...
    伊泽贝儿阅读 568评论 0 1