博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Android软件更新
阅读量:6199 次
发布时间:2019-06-21

本文共 1615 字,大约阅读时间需要 5 分钟。

hot3.png

关于软件更新的问题,简单的说一下。

首先软件更新需要判断是否需要更新。如果需要更新,需要获取更新的链接。我们可以把这个看成一个简单的系统。需要客户端请求和服务端相应。     为了简单起见我们将服务端就只放一个简单的XML文件,XML文件包含了最新的客户端版本号(这里尽量采用版本号,因为版本号是Int型的便于比较)和最新版APK的下载地址。

1 
2
2
3
http://www.youdoman.com/apk.apk
4

这样简单的服务器端就可以了。    

客户端只需要读取此xml,并通过sax解析。然后获取客户端的版本号跟从网络中读取的最新版本号做比较,如果客户端的版本号跟服务器端的版本号不同则需要更新,调用系统Intent下载更新APK即可。

1 //获取软件系统版本号  2 public class AppStatus {
3 protected static int getAppVersionId(Context ctx) {
4 try {
5 return ctx.getPackageManager().getPackageInfo(ctx.getPackageName(),0).versionCode; 6 } catch (NameNotFoundException e) {
7 // TODO Auto-generated catch block 8 return -1; 9 } 10 } 11 }

有的时候,我们可能需要获取手机系统的一些数据,用来选择相应的更新数据或者统计一些数据。获取的数据越多,也就越利于我们给用户提供更准确的更新选择。

1 public class PhoneStatus {
2 //获取手机的IMEI号 3 protected String getImei(Context ctx){
4 TelephonyManager telephonyManager=(TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE); 5 return telephonyManager.getDeviceId(); 6 } 7 //获得手机型号 8 protected String getModel(Context ctx) {
9 return android.os.Build.MODEL; 10 } 11 //获得系统固件版本 12 protected String getTarget(Context ctx) {
13 return android.os.Build.VERSION.RELEASE; 14 } 15 //获得系统固件版本号 16 protected String getSDK(Context ctx) {
17 return android.os.Build.VERSION.SDK; 18 } 19 }

拿到了这些数据我们只要交给服务器,服务器可以通过详细信息判断来决定返回的数据信息。 拿到新版本apk的url后就可以通过系统Intent来下载安装APK。

转载于:https://my.oschina.net/weisenz/blog/200616

你可能感兴趣的文章
0.0.0.0 与 127.0.0.1的区别
查看>>
尚学python课程---14、python中级语法
查看>>
Django是什么
查看>>
(转)背包9讲
查看>>
ABP相关网站
查看>>
PHP网站注册登录功能的原理是什么?
查看>>
CentOS7 firewalld打开关闭防火墙 开放端口
查看>>
python学习-函数模拟SQL
查看>>
bootstrap 2 基本css之栅格系统
查看>>
类型、值和变量
查看>>
VS2012并发可视化工具启动异常(当前正在进行ETW收集)
查看>>
Codeforces 776B & 776C 程序(夏洛克专场)
查看>>
vnc普通用户不能登录的解决方法
查看>>
隐藏Apache 及操作系统信息
查看>>
WinForm 更换主窗体的例子
查看>>
Angular.js为什么如此火呢?
查看>>
微软银光 silverlight简介
查看>>
SQL server 统计数据库表数量和列出所有表名称
查看>>
如何在CentOS里切换操作系统所用的语言,中英文切换
查看>>
C#使用事务
查看>>