1. 程式人生 > >跳轉到高德地圖或百度地圖或高德網頁導航

跳轉到高德地圖或百度地圖或高德網頁導航

最近做一個新專案,需要用到導航,專案集成了高德的SDK,所以本來想直接用SDK內的導航方法,但是發現高德最新版的導航改版了,如果SDK內加上導航模組會使得整個專案大十幾二十M,所以決定棄用SDK內的導航,最終決定,採用以下方案:

1.當手機內有高德地圖app時,調起此app來導航
2.當手機內有百度地圖app時,調起此app來導航
3.當手機內既沒有高德地圖app,也沒有百度地圖app時,調起瀏覽器,進入高德網頁導航

程式碼很簡單,如下:

1.

判斷是否安裝了高德地圖,若有則傳入導航引數並調起:

if (isInstallApk(mContext, "com.autonavi.minimap"
)) {// 是否安裝了高德 Intent intents = new Intent(); intents.setData(Uri.parse("androidamap://navi?sourceApplication=nyx_super&lat=" + wLatLng.latitude + "&lon=" + wLatLng.longitude + "&dev=0&style=2")); startActivity(intents); // 啟動呼叫 }

這裡寫圖片描述
以上是uri內的引數說明,可根據自己的需求增加欄位
高德關於此功能的網址:

點這裡

2.

判斷是否安裝了百度地圖,若有則傳入導航引數並調起:

if (isInstallApk(mContext, "com.baidu.BaiduMap")) {// 是否安裝了百度地圖
    Intent intent = new Intent();
    // 駕車導航
    intent.setData(Uri.parse("baidumap://map/navi?location=" + CommonUtils.bd_encrypt(wLatLng.latitude, wLatLng.longitude)));
    startActivity(intent); // 啟動呼叫
            }

這裡寫圖片描述
百度的此功能與高德不一樣,不同的導航方式,其uri的字首是不同的,具體可參考官網,網址如下:點這裡

3.

當手機內既沒有高德地圖app,也沒有百度地圖app時,調起瀏覽器,進入高德網頁導航

if (!isInstallApk(mContext, "com.autonavi.minimap")&&!isInstallApk(mContext, "com.baidu.BaiduMap")) {
        Intent intent = new Intent();
        intent.setAction("android.intent.action.VIEW");
        // 駕車導航
        intent.setData(Uri.parse("http://uri.amap.com/navigation?from=" + cLatLng.longitude + "," + cLatLng.latitude + "&to="+ wLatLng.longitude + "," + wLatLng.latitude + "&mode=car&src=nyx_super"));
        startActivity(intent); // 啟動呼叫
            }

這裡寫圖片描述
高德關於此功能的網址:點這裡

最後把isInstallApk方法發出:

/** 判斷手機中是否安裝指定包名的軟體 */
    public static boolean isInstallApk(Context context, String name) {
        List<PackageInfo> packages = context.getPackageManager().getInstalledPackages(0);
        for (int i = 0; i < packages.size(); i++) {
            PackageInfo packageInfo = packages.get(i);
            if (packageInfo.packageName.equals(name)) {
                return true;
            } else {
                continue;
            }
        }
        return false;
    }

看完如有幫助記得點贊