文档章节

原 判断手机是否安装高德/百度地图

丁佳辉
 丁佳辉
发布于 2017/01/06 14:48
字数 454
阅读 73
收藏 0

最近需要做一个关于导航的功能,得用手机存在的地图来打开,然后从网上找了一篇博客里面只写了怎么判断手机是否安装百度地图的,从网上各种翻,终于在高德地图上找到一句话。

开发者在调用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;
		}
	}

我这里判断了高德和百度的,希望能帮到你们

© 著作权归作者所有

共有 人打赏支持
丁佳辉
粉丝 20
博文 434
码字总数 198765
作品 0
浦东
程序员
私信 提问
判断手机是否安装高德/百度地图

最近需要做一个关于导航的功能,得用手机存在的地图来打开,然后从网上找了一篇博客里面只写了怎么判断手机是否安装百度地图的,从网上各种翻,终于在高德地图上找到一句话。 开发者在调用U...

感觉太煽情
2016/07/15
1K
0
android 调用百度地图客户端,

以前都是使用百度API在软件里面做一个百度地图出来这样感觉既浪费时间又浪费精力,这里就教大家直接使用Intent的方式调用手机上安装的百度地图客户端,访问我们所需要的路径规划等, //调起百...

Remix_jx
2014/09/03
0
1
iOS 设备判断是否安装相关地图(百度、高德。。。)

最近项目关于地图的,和朋友一起做的,他们用的高德地图,他做到半路有事,我来接手,结果我手机上没有安装高德地图,到我这边点击导航没啥反应,后来就查了一下,简单处理下,最终实现以下的...

JustEverOnce
2018/01/10
0
0
怎么在微信页面调用高德地图和百度地图APP

怎么用js调用高德地图APP导航和百度地图APP导航,自动检测手机是否安装此APP,如果安装就启动APP,如果没有安装就跳转到下载页面。这个怎么写?

zhuxuan2015
2016/06/30
21.9K
9
Android 打开第三方地图导航以及坐标转换

需求:项目中需要借助第三方应用打开导航,高德地图和百度地图坐标转换以及判断是否有安装某个第三方地图 现淘到两篇博客: http://www.biaodianfu.com/coordinate-system.html http://www....

感觉太煽情
2016/12/02
89
0

没有更多内容

加载失败,请刷新页面

加载更多

jenkins安装

https://my.oschina.net/u/593517/blog/1797968 jenkins 安装 https://my.oschina.net/u/593517/blog/3028175 GIT 安装 https://my.oschina.net/u/593517/blog/3028179 maven 安装 插件安装 ......

Gm_ning
8分钟前
1
0
小言服务端解决方案-监控

框架保证方向,整体包容细节 为保证服务端运行平稳正常,owner应使得系统应保有相应的监控:系统监控,业务监控。而服务运行的平稳高效是否有保障跟监控粒度又成直接的正比关系。本文仅针对开...

重城重楼
20分钟前
0
0
搜索引擎(Elasticsearch搜索详解)

学完本课题,你应达成如下目标: 掌握ES搜索API的规则、用法。 掌握各种查询用法 搜索API 搜索API 端点地址 GET /twitter/_search?q=user:kimchy GET /twitter/tweet,user/_search?q=user:...

这很耳东先生
44分钟前
6
0
浅谈如何减少GC的次数

GC会stop the world。会暂停程序的执行,带来延迟的代价。所以在开发中,我们不希望GC的次数过多。 本文将讨论如何在开发中改善各种细节,从而减少GC的次数。 (1)对象不用时最好显式置为 Nu...

浮躁的码农
45分钟前
1
0
jpa 自定义返回对象

任何ORM框架都少不了开放自定义sql的问题。jpa自然也不例外,很多场景需要写复杂sql的。 首先定义一个方法签名,然后打上@Query注解。像下面这样,需要注意nativeQuery,这个表示query中的字...

朝如青丝暮成雪
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部