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实现版本更新相关推荐

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

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

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

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

  3. android 使用应用市场进行版本更新

     今天,简单讲讲如何使用应用市场更新app的版本. 最近,需要做一个功能,使app能自动进行版本检测和更新.之前,app都是使用应用市场提示用户更新的,但是这次希望app在打开时可以自动检测新的版 ...

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

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

  5. Android 超级轻量的版本更新库AppUpdate

    文章目录 写在前面 示例 功能介绍 用法 实现 版本更新提示框 下载 安装 短期内更新计划 感谢 写在前面 欢迎大家关注我的公众号:牛角尖尖上起舞 Github上优秀的版本更新框架很多,推荐大家去阅读 ...

  6. 【Android】app应用内版本更新升级(DownloadManager下载,适配Android6.0以上所有版本)

    目录 前言 一.实现思路 二.服务端接口 三.UI页面 三.工具类实现 1.检查版本号 2.下载apk 3.安装apk 4.实时更新下载进度 5.完整代码 三.外部使用 总结 前言 版本的升级和更新是 ...

  7. Android 实现通知栏通知APP版本更新

    前言: 我们似乎在做什么apk,都需要去做更新这个功能,那怎么去做这个功能才好呢,那当然在做的时候当然回去百度一下(除非是大神).想我这个种没做一个比较好玩的功能的时候,第一步就是去百度大家的做法,想 ...

  8. android图标错误的是什么意思啊,Android错误:找不到与给定名称匹配的资源(在icon处,值为@drawable/icon) - Android - srcmini...

    本文概述 将旧版本的项目导入Android Studio时, 似乎会导致此错误, 然后Android Studio会将gradle版本更新为最新版本, 从而导致该错误.对于具有旧版本gradle的Co ...

  9. android应用开发实验报告_聚焦 Android 11: Android 11 应用兼容性

    作者 / Android 产品经理 Diana Wong在往期 #11WeeksOfAndroid 系列文章中我们介绍了联系人和身份.隐私和安全,本期将聚焦 Android 11 兼容性.我们将为大家 ...

最新文章

  1. 安装wampserver及配置php,phpmyadmin遇到的问题及解决方法
  2. 033_jQuery Ajax的ajax方法
  3. 5、删除存储过程(DROP PROCEDURE)
  4. springboot 问题总结
  5. C语言标识符、关键字和注释
  6. SpringMVC注解HelloWorld
  7. MATLAB学习笔记(十七)
  8. 2018年哪项AI研究最紧迫?DeepMind联合创始人说是AI伦理
  9. java for while do-while 循环的经典题
  10. 15. jQuery - 删除元素
  11. imx8mm偶现启动内核失败问题分析报告
  12. R语言:关于我国各地区消费水平的聚类分析
  13. mysql语句中的注释方法_MySQL语句注释方式简介
  14. 如何把大写金额变为小写数字_word中怎么将小写金额数字转换为大写
  15. 51nod 1076 2条不相交的路径 无向图强联通分量 trajan算法
  16. PYMOL | 制作动画
  17. 60岁还在写代码的程序员大师,Delphi、C#、TypeScript之父Anders Hejlsberg(安德斯·海尔斯伯格):编程符合10000小时定律
  18. Docker 快速入门学习
  19. 【JavaSE与数据结构】栈与Stack类
  20. 什么是代理ip,代理ip的用途有哪些?

热门文章

  1. 学习笔记——Python输入与输出
  2. OpenSolaris/Solaris 常见问题解答
  3. Jarvis_Web 刷题记录_Bellone北洛
  4. 洛谷P2258 子矩阵[2017年5月计划 清北学堂51精英班Day1]
  5. 【线性代数】1.2矩阵的行列式与克莱姆法则
  6. 电脑蓝屏代码0x0000007E,技术信息iUSBXCH.sys
  7. RTX 30系列性能≥2倍图灵GPU!AI算力前瞻,性价比超泰坦
  8. Flex 学习笔记之一:Flex 简介
  9. 网购热催生网络模特月入万元多为大学生
  10. 什么副业可以月赚1万元?做什么副业可以月入上万?