今天,简单讲讲如何使用应用市场更新app的版本。

最近,需要做一个功能,使app能自动进行版本检测和更新。之前,app都是使用应用市场提示用户更新的,但是这次希望app在打开时可以自动检测新的版本,然后进行版本更新。在网上查找了很多版本更新的资料,写出了设计文档。但是我的设计是让app在内部直接下载服务器的最新版本进行更新,而领导说必须使用应用市场进行更新,所以在网上查找资料,最终解决了问题。这里记录一下。

app跳转到应用市场上去更新,对开发者来说可以省很多的事。
直接看代码:

Intent intent=new Intent("android.intent.action.MAIN");
intent.addCategory("android.intent.category.APP_MARKET");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

运行效果如下:
选择对应的可以启动应用市场。

可以在应用市场搜索相应的app,但是似乎不能满足我们的需求,能否直接跳转到app详情页面?如果该应用市场没有我们所需的app怎么办?
继续:

  1. 先扫描手机内所有的应用市场
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.APP_MARKET");
PackageManager pm = this.getPackageManager();
List<ResolveInfo> infos = pm.queryIntentActivities(intent, 0);
int size = infos.size();
for (int i = 0; i < size; i++) {ActivityInfo activityInfo = infos.get(i).activityInfo;String packageName = activityInfo.packageName;//获取应用市场的包名
}

主流应用商店对应的包名如下:

包名 商店
com.android.vending Google Play
com.tencent.android.qqdownloader 应用宝
com.qihoo.appstore 360手机助手
com.baidu.appsearch 百度手机助
com.xiaomi.market 小米应用商店
com.wandoujia.phoenix2 豌豆荚
com.huawei.appmarket 华为应用市场
com.taobao.appcenter 淘宝手机助手
com.hiapk.marketpho 安卓市场
cn.goapk.market 安智市场

点击相应的市场跳转到app的详细页面

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("market://details?id=" + "com.cailaiwang.app");//app包名
intent.setData(uri);
intent.setPackage("com.tencent.android.qqdownloader");//应用市场包名
startActivity(inent);

也可以封装成一个函数:

/*** 启动到应用商店app详情界面** @param appPkg    目标App的包名* @param marketPkg 应用商店包名 ,如果为""则由系统弹出应用商店列表供用户选择,否则调转到目标市场的应用详情界面,某些应用商店可能会失败*/
public void launchAppDetail(String appPkg, String marketPkg) {try {if (TextUtils.isEmpty(appPkg)) return;Uri uri = Uri.parse("market://details?id=" + appPkg);Intent intent = new Intent(Intent.ACTION_VIEW, uri);if (!TextUtils.isEmpty(marketPkg)) {intent.setPackage(marketPkg);}intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);} catch (Exception e) {e.printStackTrace();}
}

简单讲讲,其实很简单,就是调用intent.addCategory("android.intent.category.APP_MARKET")可以直接跳转到全部的应用市场,也可以使用launchAppDetail(String appPkg, String marketPkg)直接跳转到具体的app下载界面,只需要传入应用市场的包名和app的appId。这里需要注意一个问题,当跳转到具体的app界面时,需要判断手机是否安装了需要跳转的应用市场,如果没有安装,直接跳转回出现问题。所以跳转前需要判断手机是否安装了我们需要的应用市场,如果没有安装,需要提示用户安装,然后才能进行跳转。代码也很简单。

// 判断市场是否存在的方法
public static boolean isAvilible(Context context, String packageName) {
final PackageManager packageManager = context.getPackageManager();// 获取packagemanager
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息
List<String> pName = new ArrayList<String>();// 用于存储所有已安装程序的包名
// 从pinfo中将包名字逐一取出,压入pName list中
if (pinfo != null) {
for (int i = 0; i < pinfo.size(); i++) {
String pn = pinfo.get(i).packageName;
pName.add(pn);
}
}
return pName.contains(packageName);// 判断pName中是否有目标程序的包名,有TRUE,没有FALSE
}

简单讲讲,其实就是先获取app所有安装的包名,然后判断是否包含我们需要的应用市场的包名。

android 使用应用市场进行版本更新就讲完了。

就这么简单。



android 使用应用市场进行版本更新相关推荐

  1. android 如何使用服务器进行版本更新

     今天,简单讲讲android里如何在app内部直接使用服务器进行版本更新. 昨天,我讲了如何使用应用市场进行版本更新.但是使用应用市场进行版本更新存在一个问题,就是app无法获取应用市场里app ...

  2. android使用fir.im实现版本更新

    android使用fir.im实现版本更新 大部分应用可在自己后台实现更新功能,有些项目没有后台,可使用fir.im提供的更新接口,方便好用. 1.在 fir.im 申请账号后,拖拽apk包上传应用 ...

  3. Android各应用市场包名

    引用地址 https://www.jianshu.com/p/cfb7f212a5a2 应用商店 应用包名 腾讯应用宝 com.tencent.android.qqdownloader 360手机助手 ...

  4. android pad版本 yy,YY游戏直播app(Android版)1.2.0版本更新

    YY游戏直播app(Android版)1.2.0版本更新 [更新时间] 2014年4月18日 [下载方式] [内容提要] YY游戏直播,上百款热门游戏.最新赛事直播,每天实时热播精彩不停歇! 关注你喜 ...

  5. 基于Android的应用市场软件的设计

    基于Android的应用市场软件的设计 摘 要 随着智能手机的普及,人们越来越依赖手机进行一系列操作. 由于Android系统是一款免费的操作系统,导致了使用Android系统的手机占到7成左右.为了 ...

  6. 微信8.0android版本,微信相继更新了 iOS 和 Android 的 8.0x 大版本更新

    这两天微信相继更新了 iOS 和 Android 的 8.0x 大版本更新,然而升级说明非常敷衍,只有一句更新了若干功能,所以水水把新功能给大家都一一整理了出来,让我们一起来看看吧. 以下是文字版内容 ...

  7. Android Studio插件市场无法加载出来

    Android Studio插件市场无法加载出来 故事背景 寻求度娘帮助 选择本地安装 故事背景 在使用Android Studio学习Flutter的过程中,需要安装Flutter插件和Dart插件 ...

  8. Android部分应用市场和包名

    开发过程中,可能会遇到 "软件评分评价" ."调用系统工具"."跳转第三方应用" 等等的需求,要实现这些调用跳转需要相对应的应用包名才可以. ...

  9. Android实现跳转到应用市场进行版本更新功能

    现在版本更新有两种处理方式了: (1)跳转到App应用市场(例如:应用宝.豌豆荚等等),通过应用市场下载更新安装. (2)在App内进行Apk下载,下载完成后更新安装. 实现思路: 1.请求后台数据, ...

最新文章

  1. 浅谈javascript中的数据类型和引用类型
  2. servlet接收multipart/form-data表单数据
  3. 可综合的SystemVerilog:参数化函数/任务
  4. 关于UNION ALL与 UNION 用法和区别
  5. 安卓自动化测试(一)
  6. 谷歌大脑计划研究员Chris Olah的博客
  7. spark 部署方式
  8. JAVA类型转换系列文章一
  9. 计算机办公自动化应用课程,1-《计算机应用基础(办公自动化)》课程标准.doc
  10. 程序员的成长课-读后感
  11. win10去除快捷小箭头_【批处理】win 去除桌面图标小箭头
  12. ​NLP产业应用实战,评论观点抽取与分析和文本语义检索深度详解
  13. r语言员工离职_使用R机器学习进行员工离职预测系列(一)
  14. 西门子200SMART(七)交叉引用
  15. 推荐一些在线效率工具汇总(数据分析,舆情监测、图片语义识别等)
  16. FutureTask源码解析二
  17. 树莓派u盘启动并扩容
  18. 【乐逍遥网站设计】网站建设如何让网站设计更加合理化?
  19. 认识1M带宽、1Mbps、1Mb/s 区分
  20. ETHPLANET 黑客松报名最后10天!来领福利喽~

热门文章

  1. WIN10 下 IE11 F12开发者工具无法debug断点调试js
  2. 闲逸联运平台为何迎来加盟热?
  3. 虚幻引擎(9)-AI随机移动
  4. 企宣java开发项目答辩_java答辩ppt模板
  5. 数字化助力生产管理:报工与跟踪管理系统
  6. 美团 测开|测试开发 面试真题|面经 汇总
  7. 使用U-Boot的mkimage制作FIT镜像或给镜像加协议头
  8. ubuntu kylin (优麒麟)18.10下添加windows的字体
  9. 电脑系统数据恢复哪个好?万兴恢复专家-支持各种场景的数据恢复
  10. 欧姆龙 SysmacStudio 关于模块化编程 数据类型联合体的应用技巧