Android 調起第三方地圖應用導航

要調起第三方應用,首先需要判斷手機中是否安裝了地圖app,然后調起導航。
百度地圖包名:com.baidu.BaiduMap
高德地圖包名:com.autonavi.minimap

一、工具類:
    /**
     * 檢查手機上是否安裝了指定的軟件
     * @param context
     * @param packageName:應用包名
     * @return
     */
    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);
    }
二、根據URI跳轉,進行導航

高德:http://lbs.amap.com/api/amap-mobile/guide/android/route
百度:http://lbsyun.baidu.com/index.php?title=uri/api/android

// 百度地圖
Uri mUri = Uri.parse("baidumap://map/direction?origin=我的位置&destination=name:" + mallName + "|latlng:" + lat + "," + lng + "&coord_type=gcj02&src=com.xxx.xxx");
Intent mIntent = new Intent(Intent.ACTION_VIEW, mUri);
startActivity(mIntent);
// 高德地圖
Uri mUri = Uri.parse("amapuri://route/plan/?sname=我的位置&dlat=" + lat + "&dlon=" + lng + "&dname=" + mallName + "&dev=0&t=0&sourceApplication=com.xxx.xxx");
Intent mIntent = new Intent(Intent.ACTION_VIEW, mUri);
startActivity(mIntent);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。