Android通过Intent来调用第三方地图

来源:互联网 发布:大数据 管理平台 编辑:程序博客网 时间:2024/05/16 16:58

关于APP的URL Scheme相关内容这里就不介绍了 大家可以自行去研究研究

这里主要介绍地图的相关知识,未来有时间给大家上个demo。
百度地图:http://lbsyun.baidu.com/index.php?title=uri/api/android

高德地图:http://lbs.amap.com/api/amap-mobile/guide/ios/map

腾讯地图:http://lbs.qq.com/uri_v1/index.html

谷歌地图:https://developers.google.com/maps/documentation/android-api/intents

判断一下是否安装此APP

 //验证各种导航地图是否安装    public static boolean isAvilible(Context context, String packageName) {        //获取packagemanager        final PackageManager packageManager = context.getPackageManager();        //获取所有已安装程序的包信息        List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);        //用于存储所有已安装程序的包名        List<String> packageNames = new ArrayList<String>();        //从pinfo中将包名字逐一取出,压入pName list中        if (packageInfos != null) {            for (int i = 0; i < packageInfos.size(); i++) {                String packName = packageInfos.get(i).packageName;                packageNames.add(packName);            }        }        //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE        return packageNames.contains(packageName);    }

百度地图跳转相关代码

if(isAvilible(context,"com.baidu.BaiduMap")){//传入指定应用包名                          try {  //                          intent = Intent.getIntent("intent://map/direction?origin=latlng:34.264642646862,108.95108518068|name:我家&destination=大雁塔&mode=driving®ion=西安&src=yourCompanyName|yourAppName#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");                              intent = Intent.getIntent("intent://map/direction?" +                                      //"origin=latlng:"+"34.264642646862,108.95108518068&" +   //起点  此处不传值默认选择当前位置                                    "destination=latlng:"+location[0]+","+location[1]+"|name:我的目的地"+        //终点                                    "&mode=driving&" +          //导航路线方式                                    "region=北京" +           //                                    "&src=慧医#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");                              context.startActivity(intent); //启动调用                          } catch (URISyntaxException e) {                              Log.e("intent", e.getMessage());                          }                      }else{//未安装                          //market为路径,id为包名                          //显示手机上所有的market商店                          Toast.makeText(context, "您尚未安装百度地图", Toast.LENGTH_LONG).show();                        Uri uri = Uri.parse("market://details?id=com.baidu.BaiduMap");                          intent = new Intent(Intent.ACTION_VIEW, uri);                           context.startActivity(intent);                       }

高德地图相关代码:

if (isAvilible(context, "com.autonavi.minimap")) {                    try{                           intent = Intent.getIntent("androidamap://navi?sourceApplication=慧医&poiname=我的目的地&lat="+location[0]+"&lon="+location[1]+"&dev=0");                          context.startActivity(intent);                       } catch (URISyntaxException e)                      {e.printStackTrace(); }                     }else{                        Toast.makeText(context, "您尚未安装高德地图", Toast.LENGTH_LONG).show();                        Uri uri = Uri.parse("market://details?id=com.autonavi.minimap");                          intent = new Intent(Intent.ACTION_VIEW, uri);                           context.startActivity(intent);                    }

谷歌地图:

if (isAvilible(context,"com.google.android.apps.maps")) {                        Uri gmmIntentUri = Uri.parse("google.navigation:q="+location[0]+","+location[1] +", + 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 = new Intent(Intent.ACTION_VIEW, uri);                           context.startActivity(intent);  }

稍后上传相关的demo,效果图大家应该都可以知道,我就不多说了。由于能力有限,不足之处请谅解。

原创粉丝点击