Android Intent跳转第三方地图应用,传入地址

因为项目中需要,网上的资料感觉很乱,就自己整理一下,在应用内跳转高德、百度、腾讯地图。

在进行跳转之前,首先要check一下本机有没有安装安装第三方的地图(app非网页哦)

包名:

高德:

com.autonavi.minimap

百度:

com.baidu.BaiduMap

腾讯:

com.tencent.map

方法两种,

第一种:高德,百度,亲测有效,貌似腾讯不行

public boolean isAvailable(String mapPackageName) {
    PackageInfo packageInfo;
    try {
        packageInfo = activity.getPackageManager().getPackageInfo(mapPackageName, 0);
    } catch (PackageManager.NameNotFoundException e) {
        packageInfo = null;
        e.printStackTrace();
    }
    return packageInfo == null ? false : true;
}

第二种:高德,百度,腾讯均有效(以腾讯为例)

new File("/data/data/com.tencent.map").exists()

跳转地图

高德:address传入目的地名称

try {
    String act = "android.intent.action.VIEW";
    String dat = "androidamap://keywordNavi?sourceApplication=softname&keyword=" + address + " &style=2";
    String pkg = "com.autonavi.minimap";
    Intent intent = new Intent(act, Uri.parse(dat));
    intent.setPackage(pkg);
    startActivity(intent);
} catch (Exception e) {
    e.printStackTrace();
}

百度:address传入目的地名称

try {
    Intent i1 = new Intent();
    i1.setData(Uri.parse("baidumap://map/geocoder?src=openApiDemo&address=" + address));
    startActivity(i1);
} catch (Exception e) {
    e.printStackTrace();
}

腾讯:address传入目的地名称 ,gotoLatitude和gotoLongitude(经纬度 必传否则会默认当前位置)

try {
    String pathUrl = "qqmap://map/routeplan?type=drive&to=" + address + "&tocoord=" + gotoLatitude + "," + gotoLongitude + "&policy=2&referer=myapp";
    Intent intent = new Intent();
    intent.setData(Uri.parse(pathUrl));
    activity.startActivity(intent);
} catch (Exception e) {
    e.printStackTrace();
}



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值