项目中用到了导航功能,本着简单的做法,就想到了直接调用高德百度第三方地图进行导航,这样可以减少包的体积,在网上百度了许久,各种都有,自己总结了一下,目前测试还算好用,拿出来晒一下,知道的就别喷了,我是菜鸟。下面直接上代码
调起高德地图导航
//移动APP调起Android高德地图方式 private void startGaoDeMap() { Intent intent = new Intent("android.intent.action.VIEW", android.net.Uri.parse("androidamap://navi?sourceApplication=amap&lat=" + latitude + "&lon=" + longitude + "&dev=1&style=0")); intent.setPackage("com.autonavi.minimap"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); if (isInstallByread("com.autonavi.minimap")) { startActivity(intent); } else { Toast.makeText(DeatailsActivity.this, "没有安装高德地图客户端", Toast.LENGTH_SHORT).show(); } }调起百度地图导航
//移动APP调起Android百度地图方式 private void startBaiduMap() { Intent intent = null; try { 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"); } catch (Exception e) { e.printStackTrace(); } if (isInstallByread("com.baidu.BaiduMap")) { startActivity(intent); // 启动调用 } else { Toast.makeText(DeatailsActivity.this, "没有安装百度地图客户端", Toast.LENGTH_SHORT).show(); } }还有下面的判断方法
private boolean isInstallByread(String packageName) { return new File("/data/data/" + packageName) .exists(); }这样写好之后,替换一下经纬度,就可以成功调起高德跟百度第三方地图导航了,在这里,我想请教个问题,调起百度地图导航,是驾车选择的界面,但是高德就是直接进入语音界面导航了,目前我需要两个都是进入到驾车选择的界面,哪位知道高德的 请留言告知下,感激了,本人太菜,别喷啊。