有时候我们需要调用地图显示一下位置,这时候可能还需要导航,导航做起来有点麻烦,如果调用第三方的是不是很简单,本文就是写这个来的;
第一种方式:android Intent调用地图应用客户端
调用百度地图:
百度地图包:com.baidu.BaiduMap
try {
intent = Intent.getIntent("intent://map/marker?location=40.047669,116.313082&title=我的位置&content=百度奎科大厦&src=yourCompanyName|yourAppName#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");
if(isInstallByread("com.baidu.BaiduMap")){
startActivity(intent); //启动调用
Log.e("GasStation", "百度地图客户端已经安装") ;
}else{
Log.e("GasStation", "没有安装百度地图客户端") ;
}
} catch (URISyntaxException e) {
e.printStackTrace();
}
具体说明见百度:http://lbsyun.baidu.com/index.php?title=uri/api/android
调用高德地图:
高德的包名: com.autonavi.minimap
try
{
Intent intent = Intent.getIntent("androidamap://viewMap?sourceApplication=厦门通&poiname=百度奎科大厦&lat=40.047669&lon=116.313082&dev=0");
startActivity(intent);
} catch (URISyntaxException e)
{
e.printStackTrace();
}
判断是否安装了应用:
private boolean isInstallByread(String packageName)
{
return new File("/data/data/" + packageName).exists();
}
第二种:使用网页,这种方式不会出现,如果没有安装导航,无法使用的问题:
我只试了百度:
private void openBrowserBaidu()
{
Uri webpage = Uri.parse("http://api.map.baidu.com/marker?location=39.915168,116.403875&title=目的地&content=天安门&output=html");
Intent webIntent = new Intent(Intent.ACTION_VIEW,webpage);
startActivity(webIntent);
}
可以进行正常导航,但传参数一定要传对才行;
demo 因为时间问题没有做具体的demo 在其它的地方写了一下
大家 看时结合博文来看:
imageView.setOnClickListener(new View.OnClickListener()
demo 下载地址