android Intent调用地图应用客户端(一)

实现的效果,点击后跳转到第三方地图,自己的应用终于可以不集成第三方sdk啦啦啦啦

调用百度地图 百度的包名为 com.baidu.BaiduMap

显示指定的位置

详细请查看官方url API http://developer.baidu.com/map/uri-introandroid.htm#idmykey41

try {
  intent = Intent.getIntent("intent://map/marker?location=31.075758,121.503256&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();  
    }

调用高德地图 高德的包为 com.autonavi.minimap Java代码

显示指定的位置

详细请查看官方url API http://lbs.amap.com/api/uri-api/summary/

private void openGaoDeMap()  
{  
    try  
    {  
        Intent intent = Intent.getIntent("androidamap://viewMap?sourceApplication=应用名字&poiname=上海闵行区&31.075758,121.503256&dev=0");  
        startActivity(intent);   
    } catch (URISyntaxException e)  
    {  
        e.printStackTrace();  
    }  
}````

判断是否安装了地图应用

private boolean isInstallByread(String packageName)  
{  
    return new File("/data/data/" + packageName).exists();  
} 

高德地图导航掉起

try
{
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.addCategory(Intent.CATEGORY_DEFAULT);
    String data="androidamap://route?sourceApplication=softname&slat=31.226532&slon=121.550492&sname=abc&dlat=31.075758&dlon=121.503256&dname=def&dev=0&m=0&t=1";
    intent.setData(Uri.parse(data));
    intent.setPackage("com.autonavi.minimap");
    startActivity(intent);
} catch (Exception e)
{
    e.printStackTrace();
}

你可能感兴趣的:(android Intent调用地图应用客户端(一))