zoukankan      html  css  js  c++  java
  • Android中直接打开高德APP进行导航

    1、判断是否安装有高德APP

    //高德APP
    private PackageManager mPackageManager;
    private static List<String> mPackageNames = new ArrayList<>();
    private static final String GAODE_PACKAGE_NAME = "com.autonavi.minimap";
    private static final String BAIDU_PACKAGE_NAME = "com.baidu.BaiduMap";
    /*private double currLocationX = 39.9076860000;
    private double currLocationY = 116.4012450000;
    private double locationX = 40.0836620000;
    private double locationY = 116.4127900000;
    private String storeName = "北京饭店";*/

    private double currLocationX;//起点 纬度
    private double currLocationY;//起点 经度
    private double locationX;//终点 纬度
    private double locationY;//终点 经度
    private String storeName;//地点名称




    if(haveGaodeMap()){//如果安装高德APP openGaodeMapToGuide();//打开高德APP } else {//否则 打开浏览器 openBrowserToGuide(); }

    2、

     /**
         * 打开高德地图
         * https://lbs.amap.com/api/amap-mobile/guide/android/route
         */
        private void openGaodeMapToGuide() {
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.addCategory(Intent.CATEGORY_DEFAULT);
            Log.i("高德定位:","经度:"+currLocationY+" ,纬度:"+currLocationX);
            if (currLocationX == 0.0 || currLocationY == 0.0){
                url = "androidamap://route?sourceApplication=amap&dlat="+locationX+"&dlon="+locationY+"&dname="+storeName+"&dev=0&t=1";
            }else {
                url = "androidamap://route?sourceApplication=amap&slat="+currLocationX+"&slon="+currLocationY
                    +"&dlat="+locationX+"&dlon="+locationY+"&dname="+storeName+"&dev=0&t=1";
            }
    
    
    
            Uri uri = Uri.parse(url);
            //将功能Scheme以URI的方式传入data
            intent.setData(uri);
            //启动该页面即可
            startActivity(intent);
        }
    
    
        /**
         * 打开浏览器
         */
        private void openBrowserToGuide() {
            String url = "http://uri.amap.com/navigation?to=" + locationY + "," + locationX + "," +
                    storeName + "&mode=car&policy=1&src=mypage&coordinate=gaode&callnative=0";
            Uri uri = Uri.parse(url);
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            startActivity(intent);
        }
    
    
    
    
    
        public void initPackageManager(){
            List<PackageInfo> packageInfos = mPackageManager.getInstalledPackages(0);
            if (packageInfos != null) {
                for (int i = 0; i < packageInfos.size(); i++) {
                    mPackageNames.add(packageInfos.get(i).packageName);
                }
            }
        }
    
        /**
         * 判断有无安装高德
         * @return
         */
        public boolean haveGaodeMap(){
            initPackageManager();
            return mPackageNames.contains(GAODE_PACKAGE_NAME);
        }
  • 相关阅读:
    SQLAlchemy(2) -- SQLAlchemy的安装
    SQLAlchemy(1) -- Python的SQLAlchemy和ORM
    http-proxy-middleware及express实现反向代理
    Vue项目中的http请求统一管理
    vue.js中如何使用scss
    Vue 相关开源项目库汇总
    Vue UI组件库
    route按需加载的3种方式:vue异步组件、es提案的import()、webpack的require.ensure()
    Npoi Web 项目中(XSSFWorkbook) 导出出现无法访问已关闭的流
    vuejs 和 element 搭建的一个后台管理界面
  • 原文地址:https://www.cnblogs.com/changyiqiang/p/9353214.html
Copyright © 2011-2022 走看看