跳转第三方地图App进行导航
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 {
/**
* 判断是否安装目标应用
*/
private static boolean isInstallByread(String packageName) {
/**
* 判断 API版本是否大于 29(Android 11)
* 大于29会强制分区
*/
if (Build.VERSION.SDK_INT <24) {
return new File("/data/data/" + packageName).exists();
}else {
return new File("storage/emulated/0/Android/data/" + packageName).exists();
}
}
/**
* 跳转到百度地图
*
* @param context com.baidu.BaiduMap
* @param latitude 纬度
* @param longtitude 经度
* @param address 终点
*/
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 +//终点:该地址会在导航页面的终点输入框显示
"&mode=driving&" +//选择导航方式 此处为驾驶
"region=" +//
"&src=#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");
context.startActivity(intent);
}catch (URISyntaxException e) {
}
}else {
AppTools.INSTANCE.toast("您尚未安装百度地图");
}
}
/**
* 跳转到高德地图
*
* @param context com.autonavi.minimap
* @param latitude 纬度
* @param longtitude 经度
* @param address 终点
*/
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("您尚未安装高德地图");
}
}
/**
* 跳转到高德地图
*
* @param context
* @param latitude 纬度
* @param longtitude 经度
* @param address 终点
*/
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=研学指南针&tocoord=" + latitude +"," + longtitude
+"&to=" + address);
context.startActivity(intent);
}catch (URISyntaxException e) {
}
}else {
AppTools.INSTANCE.toast("您尚未安装腾讯地图");
}
}
}