android使用fir.im实现版本更新
android使用fir.im实现版本更新
大部分应用可在自己后台实现更新功能,有些项目没有后台,可使用fir.im提供的更新接口,方便好用。
1、在 fir.im 申请账号后,拖拽apk包上传应用
2、调用版本查询接口, http://api.fir.im/apps/latest/,传入应用id,应用id在基本信息里查看
String url = "http://api.fir.im/apps/latest/58c2060c959d690ca80000ab";OkHttpUtils.get().url(url).addParams("api_token", "76781495449213ac787a0fd3b9923a2b").build().execute(new StringCallback(){@Overridepublic void onError(Call call, Exception e, int id) {Log.d("err===========",e + "");}@Overridepublic void onResponse(String response, int id) {Log.d("ok===========",response);Gson gson = new Gson();CheckBean bean = gson.fromJson(response,CheckBean.class);if (getVersionCode(mContext) < bean.getVersion()){showSimpleDialog(bean.getChangelog(),bean.getInstall_url());}else {Toast.makeText(mContext,"暂无更新",Toast.LENGTH_SHORT).show();}}});
可用gson解析返回数据,数据包括
应用名、version版本、更新日志、下载地址
3、获取本地version,与返回version对比
public static int getVersionCode(Context mContext) {if (mContext != null) {try {return mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0).versionCode;} catch (PackageManager.NameNotFoundException ignored) {}}return 0;}
4、有新的版本时,使用install_url下载apk
OkHttpUtils// .get()// .url(url)// .build()// .execute(new FileCallBack(Environment.getExternalStorageDirectory().getAbsolutePath(), "shzs.apk") {@Overridepublic void onError(Call call, Exception e, int id) {Log.d("err=======",e + "");}@Overridepublic void onResponse(File response, int id) {Log.d("ok==========",response.toString());installAPK(response);}@Overridepublic void inProgress(float progress, long total, int id) {Log.d("pro==========",progress + "");super.inProgress(progress, total, id);}});
可在inProgress中查看进度。
5、下载到本地后,自动安装
private void installAPK(File file) {if (!file.exists()) return;Intent intent = new Intent(Intent.ACTION_VIEW);Uri uri = Uri.parse("file://" + file.toString());intent.setDataAndType(uri, "application/vnd.android.package-archive");//在服务中开启activity必须设置flag, intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);mContext.startActivity(intent);}
到此,更新完成。
android使用fir.im实现版本更新相关推荐
- android 如何使用服务器进行版本更新
今天,简单讲讲android里如何在app内部直接使用服务器进行版本更新. 昨天,我讲了如何使用应用市场进行版本更新.但是使用应用市场进行版本更新存在一个问题,就是app无法获取应用市场里app ...
- android pad版本 yy,YY游戏直播app(Android版)1.2.0版本更新
YY游戏直播app(Android版)1.2.0版本更新 [更新时间] 2014年4月18日 [下载方式] [内容提要] YY游戏直播,上百款热门游戏.最新赛事直播,每天实时热播精彩不停歇! 关注你喜 ...
- android 使用应用市场进行版本更新
今天,简单讲讲如何使用应用市场更新app的版本. 最近,需要做一个功能,使app能自动进行版本检测和更新.之前,app都是使用应用市场提示用户更新的,但是这次希望app在打开时可以自动检测新的版 ...
- 微信8.0android版本,微信相继更新了 iOS 和 Android 的 8.0x 大版本更新
这两天微信相继更新了 iOS 和 Android 的 8.0x 大版本更新,然而升级说明非常敷衍,只有一句更新了若干功能,所以水水把新功能给大家都一一整理了出来,让我们一起来看看吧. 以下是文字版内容 ...
- Android 超级轻量的版本更新库AppUpdate
文章目录 写在前面 示例 功能介绍 用法 实现 版本更新提示框 下载 安装 短期内更新计划 感谢 写在前面 欢迎大家关注我的公众号:牛角尖尖上起舞 Github上优秀的版本更新框架很多,推荐大家去阅读 ...
- 【Android】app应用内版本更新升级(DownloadManager下载,适配Android6.0以上所有版本)
目录 前言 一.实现思路 二.服务端接口 三.UI页面 三.工具类实现 1.检查版本号 2.下载apk 3.安装apk 4.实时更新下载进度 5.完整代码 三.外部使用 总结 前言 版本的升级和更新是 ...
- Android 实现通知栏通知APP版本更新
前言: 我们似乎在做什么apk,都需要去做更新这个功能,那怎么去做这个功能才好呢,那当然在做的时候当然回去百度一下(除非是大神).想我这个种没做一个比较好玩的功能的时候,第一步就是去百度大家的做法,想 ...
- android图标错误的是什么意思啊,Android错误:找不到与给定名称匹配的资源(在icon处,值为@drawable/icon) - Android - srcmini...
本文概述 将旧版本的项目导入Android Studio时, 似乎会导致此错误, 然后Android Studio会将gradle版本更新为最新版本, 从而导致该错误.对于具有旧版本gradle的Co ...
- android应用开发实验报告_聚焦 Android 11: Android 11 应用兼容性
作者 / Android 产品经理 Diana Wong在往期 #11WeeksOfAndroid 系列文章中我们介绍了联系人和身份.隐私和安全,本期将聚焦 Android 11 兼容性.我们将为大家 ...
最新文章
- 安装wampserver及配置php,phpmyadmin遇到的问题及解决方法
- 033_jQuery Ajax的ajax方法
- 5、删除存储过程(DROP PROCEDURE)
- springboot 问题总结
- C语言标识符、关键字和注释
- SpringMVC注解HelloWorld
- MATLAB学习笔记(十七)
- 2018年哪项AI研究最紧迫?DeepMind联合创始人说是AI伦理
- java for while do-while 循环的经典题
- 15. jQuery - 删除元素
- imx8mm偶现启动内核失败问题分析报告
- R语言:关于我国各地区消费水平的聚类分析
- mysql语句中的注释方法_MySQL语句注释方式简介
- 如何把大写金额变为小写数字_word中怎么将小写金额数字转换为大写
- 51nod 1076 2条不相交的路径 无向图强联通分量 trajan算法
- PYMOL | 制作动画
- 60岁还在写代码的程序员大师,Delphi、C#、TypeScript之父Anders Hejlsberg(安德斯·海尔斯伯格):编程符合10000小时定律
- Docker 快速入门学习
- 【JavaSE与数据结构】栈与Stack类
- 什么是代理ip,代理ip的用途有哪些?
热门文章
- 学习笔记——Python输入与输出
- OpenSolaris/Solaris 常见问题解答
- Jarvis_Web 刷题记录_Bellone北洛
- 洛谷P2258 子矩阵[2017年5月计划 清北学堂51精英班Day1]
- 【线性代数】1.2矩阵的行列式与克莱姆法则
- 电脑蓝屏代码0x0000007E,技术信息iUSBXCH.sys
- RTX 30系列性能≥2倍图灵GPU!AI算力前瞻,性价比超泰坦
- Flex 学习笔记之一:Flex 简介
- 网购热催生网络模特月入万元多为大学生
- 什么副业可以月赚1万元?做什么副业可以月入上万?