由于项目的需要,原先的导航功能不需要自己去集成三方的SDK,而是直接调用高德或者百度客户端,进行导航
public static final String PACKEGE_GAODE="com.autonavi.minimap";
public static final String PACKEGE_BAIDU="com.baidu.BaiduMap";
/**
* 判断是否安装目标应用
* @param packageName 目标应用安装后的包名
* @return 是否已安装目标应用
*/
private boolean isInstallByread(String packageName) {
return new File("/data/data/" + packageName).exists();
}
//跳转到地图软件进行导航,优先选用高德地图,其次用百度地图
/**
* 城市名 位置名 目的地纬度 目的地经度
*/
private void navigation(String city, String position,String lat,String lon) {
try {
Intent intent=null;
if(isInstallByread(PACKEGE_GAODE)){
//高德地图导航的代码
Toast.makeText(getApplicationContext(), "打开高德地图", Toast.LENGTH_SHORT).show();
intent = Intent.parseUri("androidamap://viewMap?sourceApplication=appname&poiname="+position+"&lat="+lat+"&lon="+lon+"&dev=0",0);
}else if(isInstallByread(PACKEGE_BAIDU)){
//百度地图导航的代码
Toast.makeText(getApplicationContext(), "打开百度地图", Toast.LENGTH_SHORT).show();
intent=Intent.parseUri("intent://map/geocoder?location="+lat+","+lon+"&coord_type=gcj02&src=yourCompanyName|yourAppName#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end",0);
}
else{
Toast.makeText(getApplicationContext(), "未安装高德或者百度地图软件", Toast.LENGTH_SHORT).show();
}
if (intent!=null){
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
} catch (URISyntaxException e) {
e.printStackTrace();
}
}