关于APP的URL Scheme相关内容这里就不介绍了 大家可以自行去研究研究
这里主要介绍地图的相关知识,未来有时间给大家上个demo。
百度地图:http://lbsyun.baidu.com/index.php?title=uri/api/an...
高德地图:http://lbs.amap.com/api/uri-api/android-uri-explai...
腾讯地图:http://lbs.qq.com/uri_v1/index.html
谷歌地图:https://developers.google.com/maps/documentation/a...
判断一下是否安装此APP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | * 检查手机上是否安装了指定的软件 * @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 | 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"); //"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(); intent = new Intent(Intent.ACTION_VIEW, uri); context.startActivity(intent); } |
高德地图相关代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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(); intent = new Intent(Intent.ACTION_VIEW, uri); context.startActivity(intent); } |
谷歌地图:
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(); intent = new Intent(Intent.ACTION_VIEW, uri); context.startActivity(intent); } |