您的位置:首页 > 移动开发 > Android开发

Android Intent跳转第三方地图应用,传入地址

2018-04-04 18:17 405 查看
因为项目中需要,网上的资料感觉很乱,就自己整理一下,在应用内跳转高德、百度、腾讯地图。
在进行跳转之前,首先要check一下本机有没有安装安装第三方的地图(app非网页哦)
包名:
高德:com.autonavi.minimap百度:
com.baidu.BaiduMap腾讯:
com.tencent.map方法两种,
第一种:高德,百度,亲测有效,貌似腾讯不行
public boolean isAvailable(String mapPackageName) {
PackageInfo packageInfo;
try {
packageInfo = activity.getPackageManager().getPackageInfo(mapPackageName, 0);
} catch (PackageManager.NameNotFoundException e) {
packageInfo = null;
e.printStackTrace();
}
return packageInfo == null ? false : true;
}第二种:高德,百度,腾讯均有效(以腾讯为例)
new File("/data/data/com.tencent.map").exists()跳转地图
高德:address传入目的地名称
try {
String act = "android.intent.action.VIEW";
String dat = "androidamap://keywordNavi?sourceApplication=softname&keyword=" + address + " &style=2";
String pkg = "com.autonavi.minimap";
Intent intent = new Intent(act, Uri.parse(dat));
intent.setPackage(pkg);
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
百度:address传入目的地名称
try {
Intent i1 = new Intent();
i1.setData(Uri.parse("baidumap://map/geocoder?src=openApiDemo&address=" + address));
startActivity(i1);
} catch (Exception e) {
e.printStackTrace();
}腾讯:address传入目的地名称 ,gotoLatitude和gotoLongitude(经纬度 必传否则会默认当前位置)

try {
String pathUrl = "qqmap://map/routeplan?type=drive&to=" + address + "&tocoord=" + gotoLatitude + "," + gotoLongitude + "&policy=2&referer=myapp";
Intent intent = new Intent();
intent.setData(Uri.parse(pathUrl));
activity.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息