Android中实现软件检测更新和自动安装

思想:(其实,我认为第一步就是开广告!用户看广告的过程正好检测更新)

1.在启动软件的第一刻,也就是没加载窗体之前就执行该操作。

2.检测版本要读取到应用本身的版本号

3.拿到版本号后,要对比服务器上的最新版本号

4.如果没有更新,就显示首页

5.如果出现更新,就要要询问用户是否更新

6.如果用户选择更新,就从网络中下载文件,并展示对应的UI(进度条) ,否则用户会以为程序挂掉了。

7.下载完了软件就要执行安装。

好了,过程大体就是这样,有几点可以优化,比如离线包,路径什么的,在后面实现会具体实现。

----------------------------------实现----------------------------------------

Step0:这是一步可忽略的步骤,如果先加载窗体,会在软件启动的时候先白屏再进入,可以重写Application


Step1:读取版本号

我们使用到的类PackageManager,PackageManager主要是管理应用程序包,通过它就可以获取应用程序信息。

PackageManager packageManager = this.getPackageManager();
String version = "";
try {//获得包的信息 
	PackageInfo packInfo = packageManager.getPackageInfo(this.getPackageName(), 0);
	version = packInfo.versionName;//获取版本
} catch (NameNotFoundException e) {
	e.printStackTrace();
}


Step2:对比服务器中的版本

这里上传对比版本,是服务器端提供的端口,自己写的Servlet。

此处不再复制代码。应采用回调函数通知用户,询问用户意见,并执行相对应的函数。


Step3:处理文件存放的位置(当然,这里需要对规定路径扫描,以免出现下载未安装需要重新下载)

这里应先判断是否存在SDCard,尽量不使用内存.

这里也不再过多赘述,不会的可以点击 http://blog.csdn.net/u013519020/article/details/52233421


Step4:下载文件

服务器提供的更新接口中提供了最新版本的地址,我们只需要那最新版本的地址,使用HttpURLConnection类进行下载.

conn.getContentLength()可以获得文件的大小,再根据已下载的相除得到百分比,更新UI。

这里的已下载的是要保存文件的大小,这样可以避免存在已下载未安装的文件。


Step5:安装

//刚才下载文件的路径
File file = new File(path);
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//<span style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px;">这个Activity会成为历史stack中一个新Task的开始</span>
intent.setAction(Intent.ACTION_VIEW);//执行动作
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");//设置执行的数据和类型
startActivity(intent);//启动


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值