android APP调起地图导航(谷歌,高德,百度)工具类
2017-11-06 15:31
871 查看
package com.seatel.recommend.tools; import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.net.Uri; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; /** * Created by Mask on 2017/9/13. */ public class MapUtils { public static void startGuide(Context context, String latitude, String longitude) { if (isAvilible(context, "com.google.android.apps.maps")) { startNaviGoogle(context, latitude, longitude); } else if (isAvilible(context, "com.autonavi.minimap")) { startNaviGao(context, latitude, longitude); } else if (isAvilible(context, "com.baidu.BaiduMap")) { startNaviBaidu(context, latitude, longitude); } } //谷歌地图,起点就是定位点 public static void startNaviGoogle(Context context, String latitude, String longitude) { Uri gmmIntentUri = Uri.parse("google.navigation:q=" + latitude + "," + longitude+"&mode=w"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); context.startActivity(mapIntent); } //高德地图,起点就是定位点 // 终点是LatLng ll = new LatLng("你的纬度latitude","你的经度longitude"); public static void startNaviGao(Context context, String latitude, String longitude) { try { //sourceApplication Intent intent = Intent.getIntent("androidamap://navi?sourceApplication=公司的名称&poiname=我的目的地&lat=" + latitude + "&lon=" + longitude + "&dev=0"); context.startActivity(intent); } catch (URISyntaxException e) { e.printStackTrace(); } } //百度地图 public static void startNaviBaidu(Context context, String latitude, String longitude) { try { Intent intent = Intent.getIntent("intent://map/direction?destination=latlng:"+ latitude + "," + longitude + "|name:&origin=" + "我的位置" + "&mode=driving?ion=" + "我的位置"+ "&referer=Autohome|GasStation#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end"); context.startActivity(intent); } catch (Exception e) { e.printStackTrace(); } } //验证各种导航地图是否安装 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>(); // 4000 从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); } }
相关文章推荐
- 封装的导航工具类,两行代码搞定iOS App内部跳转第三方应用(百度、高德、苹果)地图导航
- android开发游记:APP内部调启百度、高德、web地图导航
- android开发游记:APP内部调启百度、高德、web地图导航
- android app调用第三方地图路线规划导航(百度,高德,腾讯)
- iOS 调起地图App进行导航(百度,高德,系统自带高德)URL API方式
- Android仿微信调用第三方地图应用导航(高德、百度、腾讯)
- IOS 不集成SDK使用URL方式打开地图导航 谷歌 百度 高德
- iOS 调起地图App进行导航(百度,高德,系统自带高德)URL API方式
- Android仿微信调用第三方地图应用导航(高德、百度、腾讯)
- android 跳转第三方地图(百度,高德,谷歌)
- android打开外部地图导航(百度、高德、腾讯)
- Android仿微信调用第三方地图应用导航(高德、百度、腾讯)
- Android开发 PopupWindow弹窗调用第三方地图(百度,高德)实现导航功能
- Android 调用第三方地图类App (高德 百度 百度网页版)
- 调用第三方地图导航,高德、百度、谷歌,无需引用sdk
- 百度、谷歌高德等网络地图经纬度偏差纠正以及相关坐标系问题
- android调用外部地图APP导航路线规划全解
- android自APP打开高德,百度,腾讯地图APP调用
- android跳转手机百度高德腾讯谷歌地图、地图传坐标、坐标偏移、base64解码相关
- Android调用第三方百度APP进行导航