美文网首页
Android Kotlin 跳转第三方地图App进行导航(高德

Android Kotlin 跳转第三方地图App进行导航(高德

作者: 余炳高笔记 | 来源:发表于2021-04-23 10:41 被阅读0次

    跳转第三方地图App进行导航

    /**

    * type

    *  1    高德地图com.autonavi.minimap

    *  2    百度地图com.baidu.BaiduMap

    *  3    腾讯地图com.tencent.map

    *

    */

    private fun goNavigation(type: Int,lat: Double, lon: Double,title:String, appName:String): Intent? {

    when (type) {

    1 ->{// sb 拼接跳转至高德地图需要的参数

                val sb = StringBuilder("androidamap://route?sourceApplication=").append(appName)

    sb.append("&dlat=").append(lat).append("&dlon=").append(lon).append("&dname=").append(title).append("&dev=0&m=0&t=0")

    return Intent("android.intent.action.VIEW", Uri.parse(sb.toString())).setPackage("com.autonavi.minimap")

    }

    2 ->{// sb 拼接跳转至百度地图需要的参数

                val sb = StringBuilder("baidumap://map/geocoder?")

    sb.append("location=").append(lat).append(",").append(lon).append("&name=").append(title).append("&coord_type=gcj02")

    return Intent().setData(Uri.parse(sb.toString())).setPackage("com.baidu.BaiduMap")

    }

    else ->{// sb 拼接跳转至腾讯地图需要的参数

                val sb = StringBuilder("qqmap://map/routeplan?type=drive&referer=").append(appName)

    sb.append("&tocoord=").append(lat).append(",").append(lon).append("&to=").append(title)

    return Intent( ).setData( Uri.parse(sb.toString()))

    }

    }

    }

    检测是否安装App

    /**

    * 检索是否有对应app

    */

    fun isApp(packageName: String?): Boolean {

    //获取packagemanager

        val packageManager =activity?.packageManager

        //获取所有已安装程序的包信息

        val packageInfos = packageManager?.getInstalledPackages(0)

    //用于存储所有已安装程序的包名

        val packageNames: MutableList = ArrayList()

    //从pinfo中将包名字逐一取出,压入pName list中

        if (packageInfos !=null) {

    for (iin packageInfos.indices) {

    val packName =packageInfos[i].packageName

                packageNames.add(packName)

    }

    }

    //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE

        return packageNames.contains(packageName)

    }

    相关文章

      网友评论

          本文标题:Android Kotlin 跳转第三方地图App进行导航(高德

          本文链接:https://www.haomeiwen.com/subject/iqhcrltx.html