android 应用打开打开第三方地图(百度、高德、腾讯)

本文介绍了如何在Android应用中实现点击事件调用百度、高德、腾讯等第三方地图软件的功能,包括弹框布局的创建和地图跳转方法的详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
问题

最近项目需要实现一个这样的功能:点击位置信息,调用手机上安装的地图软件,进行导航(效果图见上图)

然后就是一顿百度.....

还好找到了解决办法,其实很简单,因为常用的地图软件开放的都有相关api,
我们再开发的过程中直接调用就可以了

下面的是代码,可以直接复制粘贴使用
注:底部弹框使用的是xPopup开源库,很好用,推荐给大家

点击访问 xPopup开源库 GitHub地址

工具类

作用:为了遍历手机上安装的所有软件,看看是否安装的有相关地图软件
public class isAvilibleUitls {
   

    // 检索地图软件
    public static boolean isAvilible(Context context, String packageName) {
   
//获取packagemanager
        final PackageManager packageManager = context.getPackageManager();
//获取所有已安装程序的包信息
        List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);
//用于存储所有已安装程序的包名
        List<String> packageNames = new ArrayList<String>();
//从pinfo中将包名字逐一取出,压入pName list中
        if (packageInfos != null) {
   
            for (int i = 0; i < packageInfos.size(); i++) {
   
                String packName = packageInfos.get(i).packageName;
                packageNames.add(packName);
            }
        }
//判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE
        return packageNames.contains(packageName);
    }

    /**
     * 指定地图
     * 百度地图包名:com.baidu.BaiduMap
     * <p>
     * 高德地图包名:com.autonavi.minimap
     * <p>
     * 腾讯地图包名:com.tencent.map
     * <p>
     * 谷歌地图 com.google.android.apps.maps
     */
    public List<String> mapsList() {
   
        List<String> maps = new ArrayList<>();
        maps.add("com.baidu.BaiduMap");
        maps.add("com.autonavi.minimap");
        maps.add("com.tencent.map");
        return maps;
    }

    // 检索筛选后返回
    public List<String> hasMap(Context context) {
   
        List<String> mapsList = mapsList();
        List<String> backList = new ArrayList<>();
        for (int i = 0; i < mapsList.size(); i++) {
   
            boolean avilible = isAvilible(context, mapsList.get(i));
            if (avilible) {
   
                backList.add(mapsList.get(i)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值