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

来源:互联网 发布:苹果6为什么没有4g网络 编辑:程序博客网 时间:2024/05/17 03:32

关于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

     * 检查手机上是否安装了指定的软件      * @param context      * @param packageName:应用包名      * @return      */      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);    }   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

百度地图跳转相关代码

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);                       }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

高德地图相关代码:

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);                    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

谷歌地图:

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);  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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

原创粉丝点击