android 使用应用市场进行版本更新
今天,简单讲讲如何使用应用市场更新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怎么办?
继续:
- 先扫描手机内所有的应用市场
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 使用应用市场进行版本更新相关推荐
- android 如何使用服务器进行版本更新
今天,简单讲讲android里如何在app内部直接使用服务器进行版本更新. 昨天,我讲了如何使用应用市场进行版本更新.但是使用应用市场进行版本更新存在一个问题,就是app无法获取应用市场里app ...
- android使用fir.im实现版本更新
android使用fir.im实现版本更新 大部分应用可在自己后台实现更新功能,有些项目没有后台,可使用fir.im提供的更新接口,方便好用. 1.在 fir.im 申请账号后,拖拽apk包上传应用 ...
- Android各应用市场包名
引用地址 https://www.jianshu.com/p/cfb7f212a5a2 应用商店 应用包名 腾讯应用宝 com.tencent.android.qqdownloader 360手机助手 ...
- android pad版本 yy,YY游戏直播app(Android版)1.2.0版本更新
YY游戏直播app(Android版)1.2.0版本更新 [更新时间] 2014年4月18日 [下载方式] [内容提要] YY游戏直播,上百款热门游戏.最新赛事直播,每天实时热播精彩不停歇! 关注你喜 ...
- 基于Android的应用市场软件的设计
基于Android的应用市场软件的设计 摘 要 随着智能手机的普及,人们越来越依赖手机进行一系列操作. 由于Android系统是一款免费的操作系统,导致了使用Android系统的手机占到7成左右.为了 ...
- 微信8.0android版本,微信相继更新了 iOS 和 Android 的 8.0x 大版本更新
这两天微信相继更新了 iOS 和 Android 的 8.0x 大版本更新,然而升级说明非常敷衍,只有一句更新了若干功能,所以水水把新功能给大家都一一整理了出来,让我们一起来看看吧. 以下是文字版内容 ...
- Android Studio插件市场无法加载出来
Android Studio插件市场无法加载出来 故事背景 寻求度娘帮助 选择本地安装 故事背景 在使用Android Studio学习Flutter的过程中,需要安装Flutter插件和Dart插件 ...
- Android部分应用市场和包名
开发过程中,可能会遇到 "软件评分评价" ."调用系统工具"."跳转第三方应用" 等等的需求,要实现这些调用跳转需要相对应的应用包名才可以. ...
- Android实现跳转到应用市场进行版本更新功能
现在版本更新有两种处理方式了: (1)跳转到App应用市场(例如:应用宝.豌豆荚等等),通过应用市场下载更新安装. (2)在App内进行Apk下载,下载完成后更新安装. 实现思路: 1.请求后台数据, ...
最新文章
- 浅谈javascript中的数据类型和引用类型
- servlet接收multipart/form-data表单数据
- 可综合的SystemVerilog:参数化函数/任务
- 关于UNION ALL与 UNION 用法和区别
- 安卓自动化测试(一)
- 谷歌大脑计划研究员Chris Olah的博客
- spark 部署方式
- JAVA类型转换系列文章一
- 计算机办公自动化应用课程,1-《计算机应用基础(办公自动化)》课程标准.doc
- 程序员的成长课-读后感
- win10去除快捷小箭头_【批处理】win 去除桌面图标小箭头
- ​NLP产业应用实战,评论观点抽取与分析和文本语义检索深度详解
- r语言员工离职_使用R机器学习进行员工离职预测系列(一)
- 西门子200SMART(七)交叉引用
- 推荐一些在线效率工具汇总(数据分析,舆情监测、图片语义识别等)
- FutureTask源码解析二
- 树莓派u盘启动并扩容
- 【乐逍遥网站设计】网站建设如何让网站设计更加合理化?
- 认识1M带宽、1Mbps、1Mb/s 区分
- ETHPLANET 黑客松报名最后10天!来领福利喽~
热门文章
- WIN10 下 IE11 F12开发者工具无法debug断点调试js
- 闲逸联运平台为何迎来加盟热?
- 虚幻引擎(9)-AI随机移动
- 企宣java开发项目答辩_java答辩ppt模板
- 数字化助力生产管理:报工与跟踪管理系统
- 美团 测开|测试开发 面试真题|面经 汇总
- 使用U-Boot的mkimage制作FIT镜像或给镜像加协议头
- ubuntu kylin (优麒麟)18.10下添加windows的字体
- 电脑系统数据恢复哪个好?万兴恢复专家-支持各种场景的数据恢复
- 欧姆龙 SysmacStudio 关于模块化编程 数据类型联合体的应用技巧