一个APP下载升级的Demo(通知栏实时更新下载进度)------(二)

功能说明:

      进入关于界面,点击检测新版本,如果发现服务器上的版本比本地应用的版本高,就弹出升级提示,用户选择升级,就进入APP下载,在通知栏显示当前下载进度,下载完成后,用户点击通知栏,就可以完成应用安装。

    这部分升级功能,相对于<<一个APP下载升级的Demo(通知栏实时更新下载进度)------(一)>>来说,添加了使用本地APP信息参数来传给服务器,再从服务器获取相应的信息参数,再进行下载升级

图解升级的过程:
按下MENU---关于:

                                           

                           图片一                                                       图片二                                                                    图片三                                                                图片四

图片一:  关于界面

图片二:  点击检测新版本,发现有新版本,弹出软件升级提示

图片三:  下载成功通知栏,提示点击安装

图片四:   点击安装


升级部分的源码路径:
com.kk.videoplayer.update

关键源码的说明:
AboutActivity.java: 关于界面
IsToUpdateThread.java: 判断是否提示升级的线程
UpdateService.java: 更新,下载,升级,安装的服务(核心文件)

UpdateUtil.java: 判断是否提示升级的帮助类
UpdateHelper.java museUI 官方论坛地址, museUI 新浪微博, museUI 腾讯微博

描述本地APP和服务器上的APP信息的帮助类:
ResponseResult.java: 描述服务器的返回信息
ResponseParams.java 描述服务器的返回信息
RequestAppInfoUtiol.java 描述发给服务器的请求信息
RequestAppInfo.java 描述发给服务器的请求信息
AppResult.java 应用结果实体类

HttpClientUtil.java HTTP工具类
GetServerAppInfo.java 获取服务器上APP的信息
AppUpdateServiceRequestTemplate.java 服务xml参数模板
AppUpdateServiceHandler.java xml读取类

MySharedPreferences.java xml文件,保存一些值
FileUtil.java 文件帮助类,这个主要是处理下载的APP存放的位置


应用升级统一协议规范说明:

服务器请求地址
服务器统一请求地址为:http://unionupdate.kkpush.net/UnionUpdateService


协议说明
在请求服务器时需要手机端把相应的参数作为HTTP请求的param传到服务器,相应的参数统一以XML的格式,具体形式如下:
1.请求参数协议
<Request>
<RequestType>App</RequestType>
<AppParams>
<OpType>getCurrentVersion</OpType>
<UserName>用户名,一般是imei</UserName>
<AppName>应用名称</AppName>
<PackageName>应用包名</PackageName>
<SystemVersion>系统版本号</SystemVersion>
<AppVersion>应用版本号</AppVersion>
<Paramater1>扩展参数</Paramater1>
<Paramater2>扩展参数</Paramater2>
<Paramater3>扩展参数</Paramater3>
</AppParams>
<OtherParams>其他参数</OtherParams>
</Request>
请求参数详细说明


 
字段名称 
字段说明
 其他
RequestType
 统一的请求行为
App:为应用服务的请求
 唯一值,且大小写需一致
AppParams
 请求中的参数,以下保护相应的子节点 

OpType
 操作的类型
getCurrentVersion:请求应用最新版本
 getCurrentVersion:为固定值
UserName
手机的IMEI号 

AppName 
请求获取最新版本的应用名称 

PackageName
 请求应用的包名称 

SystemVersion
手机系统版本
  通过程序获取手机系统版本
AppVersion
 请求应用的版本号
1.0.0.A015_ICS.S001p 
| | |_签名信息 
| | 
| |_SDK版本 

|__版本编号 要符合应用统一命名规范:
具体要求请参考《系统组软件开发规范》文档
Paramater1,Paramater2,Paramater3
扩展参数
 功能扩展使用的保留字段
   



2.响应参数协议
<Response>
<ResponseCode>
返回码:0000成功,0001失败,0003服务器异常,0004参数错误
</ResponseCode>
<ResponseMessage>
返回消息
</ResponseMessage>
<ResponseResult>
<AppResult>
<AppVersion>应用版本号</AppVersion>
<AppVersionInfo>应用版本信息</AppVersionInfo>
<DownloadUrl>应用版本下载地址</DownloadUrl>
<Paramater1>扩展参数</Paramater1>
<Paramater2>扩展参数</Paramater2>
<Paramater3>扩展参数</Paramater3>
<AppResult>
</ResponseResult>
</Response>
响应参数详细说明:

字段名称字段说明  其他
ResponseCode标示响应结果的相应码  0000成功,0001失败,0003服务器异常,0004参数错误
ResponseMessage 响应的信息 需要处理的一些消息
AppResult 响应的结果,包括详细的子节点  
AppVersion 服务器当前最新的版本号  
AppVersionInfo 服务器上最新版本号的描述信息  
DownloadUrl 最新应用的下载路径  
Paramater1,Paramater2,Paramater3 扩展参数  

例子说明

我们提供获取应用版本信息的demo为:AppUpdateDemo
1.请求获取应用的版本信息:AppUpdateDemoActivity.java中的143行:
param = AppUpdateServiceRequestTemplate.getAppCurrentVersionParams("","","","","");
参数分别为:
UserName:手机IMEI
AppName:应用名称
PackageName:应用包名
SystemVersion:手机系统版本号
AppVersion:应用的版本号
便可以成功请求服务器。
2.处理响应的结果,AppUpdateDemoActivity.java中的177行:
// 解析版本信息xml
if (responseParams == null)
{
sendError();
return;
}
//获取到正确的结果
if("0000".equals(responseParams.getResponseCode()))
{
AppResult appResult = responseParams.getResponseResult().getAppResult();
sendSuccess(appResult);
}
else
{
sendError();
}
3.修改请求服务器的地址:HttpClientUtil.java中的29行定义:
注:服务器的请求地址必须一致为:http://unionupdate.kkpush.net/UnionUpdateService
private String serviceUrl;//服务地址


源码下载:

http://download.csdn.net/detail/hfreeman2011/5267459


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值