判断手机是否安装高德/百度地图
2016-07-15 00:00
363 查看
最近需要做一个关于导航的功能,得用手机存在的地图来打开,然后从网上找了一篇博客里面只写了怎么判断手机是否安装百度地图的,从网上各种翻,终于在高德地图上找到一句话。
开发者在调用URI 之前需要先判断是否安装了高德地图APP。如果没有安装,下载安装高德地图。然后调用相关地图功能,如周边实时路况信息显示,示例如下:
然后综合网上那篇博客代码如下,
我这里判断了高德和百度的,希望能帮到你们
开发者在调用URI 之前需要先判断是否安装了高德地图APP。如果没有安装,下载安装高德地图。然后调用相关地图功能,如周边实时路况信息显示,示例如下:
Intent intent = new Intent("android.intent.action.VIEW", android.net.Uri.parse("androidamap://showTraffic?sourceApplication=softname&poiid=BGVIS1&lat=36.2&lon=116.1&level=10&dev=0")); intent.setPackage(“com.autonavi.minimap”); startActivity(intent);
然后综合网上那篇博客代码如下,
/** * 检查手机上是否安装了指定的软件 * @param context * @param packageName:应用包名 * @return */ private 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); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.common_right: //如果已安装, if(isAvilible(mcontext,"com.baidu.BaiduMap")) {//传入指定应用包名 WinToast.makeText(mcontext,"即将用百度地图打开导航").show(); Uri mUri = Uri.parse("geo:"+jingdu+","+weidu+"?q="+title); Intent mIntent = new Intent(Intent.ACTION_VIEW,mUri); startActivity(mIntent); }else if(isAvilible(mcontext,"com.autonavi.minimap")){ WinToast.makeText(mcontext,"即将用高德地图打开导航").show(); Uri mUri = Uri.parse("geo:"+jingdu+","+weidu+"?q="+title); Intent intent = new Intent("android.intent.action.VIEW",mUri); startActivity(intent); }else { WinToast.makeText(mcontext,"请安装第三方地图方可导航").show(); return; } break; default: break; } }
我这里判断了高德和百度的,希望能帮到你们
相关文章推荐
- Android中颜色的设置
- android的常用方法,后续会一直增加
- android中获取位置(二)--利用反向地址编码获取具体位置信息
- Android-事件分发机制
- OSChina学习----slpash界面
- Android Studio下的"数字签名"
- android图片处理方法(不断收集中)
- android 取消系统默认手机加密(全盘加密)
- AndroidStudio项目中Activity去掉标题栏
- android studio 2.0 导入项目
- Android retrofit使用小心得
- AndroidStudio取消SVN关联
- Android操作数据的动态更新ListView
- Android总结随笔
- android RecyclerView响应点击事件
- Android 的输入管理学习计划
- android中获取位置(一)--利用locationManager获取当前经纬度信息
- Android Wear设计指南
- android studio for android learning (十八) android事件监听器绑定的方法详解
- Android:创建可穿戴应用 - 自定义布局