版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、代码简介:许多Android应用程序具有自动更新功能,用户只需单击鼠标即可完成软件升级。由于Android系统的软件包管理和安装机制,此功能非常易于实施。接下来,我们来看一下。首先提供界面效果。1.知识准备每个Android apk的版本id在AndroidManifest.xml中定义。视图源打印?156其中android:versionCode和android:versionName两个字段分别表示版本代码和版本名称。VersionCode是整数,versionName是字符串。VersionCode主要用于检查升级,以便比较以前版本和以后版本的大小,因为version对用户可见,所以无法
2、轻松比较大小。应用程序如何读取AndroidManifest.xml中的versionCode和versionName?可以使用PackageManager的API引用以下代码:视图源打印?01public static int getver code(context)-02int verCode=-1;03Try 04verscode=context . getpackagermanager()。getpackaging info(05Com.myapp ,0)。versionCode06 catch (namenotfoundexception)07Log.e(TAG,e . get me
3、ssage();0809Return verCode101112public static string getvername(context)13String verName=“”14Try 15vername=context . getpackagermanager()。getpackaging info(16Com.myapp ,0)。versionName17 catch (namenotfoundexception)18Log.e(TAG,e . get message();1920Return verName21或者,将Android 3360 version name= 1 .
4、2 . 0 建立为Android : version name= string/app _ version name ,然后输入values/视图源打印?1public static string getvername(context)2string vername=context . get resources()3.gettext(r . string . app _ version name)。tostring();4Return verName52.流程框架3.检查版本将最新版本的apk文件(例如http:/localhost/myapp/myapp.apk)放置在服务器上此外,将与此
5、apk对应的版本信息调用界面或文件(例如333636360http:/localhost/myapp/ver . JSON)置于服务器上Ver.json的内容如下:视图源打印?1appname : jtopapp12 , apk name : jtop app-12-updateapksamples . apk , ver然后在手机客户端上读取和确认版本:视图源打印?01Privateboolean getserverver(),02Try 03string ver JSON=network tool . get content(config . update _ server04Config
6、。UPDATE _ VERJSON);05Json array=new JSON array06If (array.length() 0) 07jsonobjectobj=array . getjsonobject(0);08Try 09new ver code=integer . parseint(obj . getstring( ver code );10new vername=obj . getstring( ver name );11 catch (exception e)12newver code=-1;13NewVerName=14Return false151617 catch
7、(exception e)18Log.e(TAG,e . get message();19Return false2021Return true22比较服务器和客户端的版本并执行更新操作。视图源打印?1If (getServerVerCode() 2intver code=config . getver code(this);/使用在前面的第一部分中创建的方法3新代码(if)4DoNewVersionUpdate();/更新新版本5 else6NotNewVersionShow();/提示是当前最新版本78详细方法:视图源打印?01private void notnewversionshow(
8、)02intver code=config . getver code(this);03string vername=config . getvername(this);04string buffer sb=new string buffer();05Sb.append(“当前版本:”);06sb . append(verName);07Sb .sb . append( code : );08Sb .append(vers code);09Sb.append(、10已经是最新版本,无需更新!();11dialog dialog=newalert dialog . builder(update
9、. this)。settle(“软件更新”)12.设置setMessage(sb.toString()/内容13.setPositiveButton(“确定”,/“检查设置”按钮)14new dialog interface . onclickacelistener()15Override16public void onclick(dialog interface dialog,17Int which)!18finish();1920)。create();/创建21/显示对话框22dialog . show();2324private void donewversionupdate()25in
10、tver code=config . getver code(this);26string vername=config . getvername(this);27string buffer sb=new string buffer();28Sb.append(“当前版本:”);29sb . append(verName);30Sb .sb . append( code : );31Sb .append(vers code);32Sb.append(,新版本: );33sb . append(new vername);34Sb .sb . append( code : );35sb . app
11、end(newver code);36Sb.append(“,是否更新?”);37dialog dialog=newalert dialog . builder(update . this)38.setTitle(“软件更新”)39.setMessage(sb.toString()40/内容设定41.setPositiveButton(“更新”,/“检查设置”按钮)42new dialog interface . onclickacelistener()43Override44public void onclick(dialog interface dialog,45Int which)!46
12、pbar=new progress dialog(update . this);47PBar.setTitle(“正在下载”);48PBar.setMessage(“请稍候.”);49pbar . setprogesstyle(progress dialog . style _ spinner);50down file(config . update _ server config . update _ apkname);5152)53.setNegativeButton(“尚未更新”、54new dialog interface . onclickacelistener()55public
13、void onclick(dialog interface dialog,56Int whichButton) 57/单击“取消”按钮,然后退出程序58finish();5960)。create();/创建61/显示对话框62dialog . show();634.下载模块视图源打印?01void down file(final string URL)& nbsp02pbar . show();03New Thread() 04Public void run() 05http client=new default http client();06http get get=new http get(URL);07Httpresponse08Try 09response=client . execute(get);10http entity=response . getentity();11long length=entity . getcontentlength();12input streamis=entity . get content();13file output stream file output stream=null;14If (is!=null) 15File file=new File(16environment . getexternalstoragedire
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国人民大学外国语学院招聘1人备考题库(北京)及参考答案详解1套
- 2026重庆旅游资产管理有限公司统景景区管理分公司招聘3人备考题库及答案详解(夺冠)
- 2026辽宁省检验检测认证中心赴高校现场招聘15人备考题库及答案详解(各地真题)
- 2026江苏南通通州湾三余人民医院招聘医疗辅助人员1人备考题库及答案详解(历年真题)
- 2026广东省能源集团有限公司数字化管理办公室首席架构师招聘1人备考题库及答案详解(历年真题)
- 2026湖南长沙市雨花区统计局招聘工作人员1人备考题库含答案详解
- 2026山西工程科技职业大学招聘博士研究生60人备考题库及答案详解(各地真题)
- 2026国家科技基础条件平台中心度高层次专业技术人才招聘1人备考题库含答案详解(轻巧夺冠)
- 2026江西新余市高欣集团控股有限公司招聘9人备考题库附答案详解(突破训练)
- 2026辽宁报刊传媒集团(辽宁日报社)面向社会招聘高层次人才10人备考题库及答案详解(考点梳理)
- 2026电力重大事故隐患判定标准及治理监督管理规定全文逐条学习课件
- 2026中央台办所属事业单位招聘工作人员10人笔试参考试题及答案解析
- 西医综合(循环系统)历年真题试卷汇编3
- 2025年区块链安全审计安全职业发展路径
- 2026年北师大版三年级下册数学全册教学设计-合集
- LED显示屏使用培训
- 风电场系统组成培训课件
- 智慧工地项目管理系统方案
- 【全文翻译】欧盟-GMP-附录1《无菌药品生产》智新版
- 公寓楼安全管理制度与公寓管理员安全生产责任制
- 5年高考数学真题分类汇编专题04函数概念与基本初等函数(解析版)
评论
0/150
提交评论