/** 判断手机中是否安装指定包名的软件 */
public static boolean isInstallApk(String name) {
List<PackageInfo> packages = App.instance.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;
}
一、高德地图
打开高德地图API——>开发支持——>高德地图手机版(在其它这个分类里面)。直达链接:https://lbs.amap.com/api/amap-mobile/guide/android/route
举例:
isInstallApk("com.autonavi.minimap")
Uri uri = Uri.parse("amapuri://route/plan/?dlat="+"目的地lat"+"&dlon="+"目的地lng"+"&dname="+"目的地名称"+"&dev=0&t=0");
Activity.startActivity(new Intent(Intent.ACTION_VIEW, uri));
可以额外拼的参数:
二、百度地图
百度地图API——>开发文档——>地图调起API(服务接口)——>android端——>2.3.2路线规划 直达链接:http://lbsyun.baidu.com/index.php?title=uri/api/android
举例:
isInstallApk("com.baidu.BaiduMap")
Uri uri = Uri.parse("baidumap://map/direction?destination=latlng:"+"目的地lat"+","+ "目的地lng"+"|name:"+"目的地名称"+"&mode=driving");
Activity.startActivity(new Intent(Intent.ACTION_VIEW, uri));
可额外拼的参数:
三、google地图
if (isInstallApk( "com.google.android.apps.maps")) {
Uri gmmIntentUri = Uri.parse("google.navigation:q="+ mLatitude + "," + mLongitude+ ", + Sydney +Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW,gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
context.startActivity(mapIntent);
} else {
Toast.makeText(context, "您尚未安装谷歌地图", Toast.LENGTH_LONG).show();
Uri uri = Uri.parse("market://details?id=com.google.android.apps.maps");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
context.startActivity(intent);
}
参考文献:
https://blog.csdn.net/weimingjue/article/details/80493969
https://blog.csdn.net/shaoyezhangliwei/article/details/77968566