现在的位置: 首页 > 综合 > 正文

Android自动检测版本及自动升级

2013年01月09日 ⁄ 综合 ⁄ 共 1467字 ⁄ 字号 评论关闭

步骤:

1.检测当前版本的信息AndroidManifest.xml-->manifest-->android:versionName。

2.从服务器获取版本号(版本号存在于xml文件中)并与当前检测到的版本进行匹配,如果不匹配,提示用户进行升级,如果匹配则进入程序主界面。

3.当提示用户进行版本升级时,如果用户点击了确定,系统将自动从服务器上下载并进行自动升级,如果点击取消将进入程序主界面。

效果图:

     

获取当前程序的版本号:

  1. /* 
  2.  * 获取当前程序的版本号  
  3.  */  
  4. private String getVersionName() throws Exception{  
  5.     //获取packagemanager的实例   
  6.     PackageManager packageManager = getPackageManager();  
  7.     //getPackageName()是你当前类的包名,0代表是获取版本信息  
  8.     PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(), 0);  
  9.     return packInfo.versionName;   
  10. }  

获取服务器端的版本号:

  1. /* 
  2.  * 用pull解析器解析服务器返回的xml文件 (xml封装了版本号) 
  3.  */  
  4. public static UpdataInfo getUpdataInfo(InputStream is) throws Exception{  
  5.     XmlPullParser  parser = Xml.newPullParser();    
  6.     parser.setInput(is, "utf-8");//设置解析的数据源   
  7.     int type = parser.getEventType();  
  8.     UpdataInfo info = new UpdataInfo();//实体  
  9.     while(type != XmlPullParser.END_DOCUMENT ){  
  10.         switch (type) {  
  11.         case XmlPullParser.START_TAG:  
  12.             if("version".equals(parser.getName())){  
  13.                 info.setVersion(parser.nextText()); //获取版本号  
  14.             }else if ("url".equals(parser.getName())){  
  15.                 info.setUrl(parser.nextText()); //获取要升级的APK文件  
  16.             }else if ("description".equals(parser.getName())){  
  17.                 info.setDescription(parser.nextText()); //获取该文件的信息  
  18.             }  
  19.             break;  
  20.         }  
  21.         type = parser.next();  
  22.     }  
  23.     return info;  
  24. }  

从服务器下载apk:

抱歉!评论已关闭.