跳轉(zhuǎn)第三方地圖App進(jìn)行導(dǎo)航
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import com.open.git.util.AppTools;
import java.io.File;
import java.net.URISyntaxException;
public class PackageUtil {
/**
? ? * 判斷是否安裝目標(biāo)應(yīng)用
? ? */
? ? private static boolean isInstallByread(String packageName) {
/**
? ? ? ? * 判斷 API版本是否大于 29(Android 11)
? ? ? ? * 大于29會強(qiáng)制分區(qū)
? ? ? ? */
? ? ? ? if (Build.VERSION.SDK_INT <24) {
return new File("/data/data/" + packageName).exists();
? ? ? ? }else {
return new File("storage/emulated/0/Android/data/" + packageName).exists();
? ? ? ? }
}
/**
? ? * 跳轉(zhuǎn)到百度地圖
? ? *
? ? * @param context? ? com.baidu.BaiduMap
? ? * @param latitude? 緯度
? ? * @param longtitude 經(jīng)度
? ? * @param address? ? 終點(diǎn)
? ? */
? ? public static void goBaiduMap(Context context, double latitude, double longtitude, String address) {
if (isInstallByread("com.baidu.BaiduMap")) {
try {
Intent intent = Intent.getIntent("intent://map/direction?destination=latlng:"
? ? ? ? ? ? ? ? ? ? ? ? + latitude +","
? ? ? ? ? ? ? ? ? ? ? ? + longtitude +"|name:" + address +//終點(diǎn):該地址會在導(dǎo)航頁面的終點(diǎn)輸入框顯示
? ? ? ? ? ? ? ? ? ? ? ? "&mode=driving&" +//選擇導(dǎo)航方式 此處為駕駛
? ? ? ? ? ? ? ? ? ? ? ? "region=" +//
? ? ? ? ? ? ? ? ? ? ? ? "&src=#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");
? ? ? ? ? ? ? ? context.startActivity(intent);
? ? ? ? ? ? }catch (URISyntaxException e) {
}
}else {
AppTools.INSTANCE.toast("您尚未安裝百度地圖");
? ? ? ? }
}
/**
? ? * 跳轉(zhuǎn)到高德地圖
? ? *
? ? * @param context? ? com.autonavi.minimap
? ? * @param latitude? 緯度
? ? * @param longtitude 經(jīng)度
? ? * @param address? ? 終點(diǎn)
? ? */
? ? public static void goGaodeMap(Context context, double latitude, double longtitude, String address) {
if (isInstallByread("com.autonavi.minimap")) {
try {
Intent intent = Intent.getIntent("androidamap://navi?sourceApplication=&poiname=" + address +"&lat=" + latitude
+"&lon=" + longtitude +"&dev=0");
? ? ? ? ? ? ? ? context.startActivity(intent);
? ? ? ? ? ? }catch (URISyntaxException e) {
}
}else {
AppTools.INSTANCE.toast("您尚未安裝高德地圖");
? ? ? ? }
}
/**
? ? * 跳轉(zhuǎn)到高德地圖
? ? *
? ? * @param context
? ? * @param latitude? 緯度
? ? * @param longtitude 經(jīng)度
? ? * @param address? ? 終點(diǎn)
? ? */
? ? public static void goQQMap(Context context, double latitude, double longtitude, String address) {
if (isInstallByread("com.tencent.map")) {
try {
Intent intent = Intent.getIntent("qqmap://map/routeplan?type=drive&referer=研學(xué)指南針&tocoord=" + latitude +"," + longtitude
+"&to=" + address);
? ? ? ? ? ? ? ? context.startActivity(intent);
? ? ? ? ? ? }catch (URISyntaxException e) {
}
}else {
AppTools.INSTANCE.toast("您尚未安裝騰訊地圖");
? ? ? ? }
}
}