应用程序自动更新源码说明_第1页
应用程序自动更新源码说明_第2页
应用程序自动更新源码说明_第3页
应用程序自动更新源码说明_第4页
应用程序自动更新源码说明_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论