思路:
1、在tomcat上放置xml文件,文件里存放最新的版本号信息,客户端通过http的方式访问xml文件来获取最近的版本信息;
2、客户端比对版本信息来判断是否需要更新;
由于通过网络来访问xml文件,需要需要启用线程来进行xml文件的访问,同时将线程访问得到在hashmap传给主线程,主线程比对版本信息。
Tomcat上的配置如下:
E:\android\tomcat\conf tomcat的配置目录:下的:server.xml文件的<host>中加入
<Context docBase="E:\MyEclipse\MYworkspace\zoomactechppm\versionupdatedir" path="/versionupdatedir" ></Context>
docBase为xml文件的存放目录,path为http访问的子路径。
新版本的配置文件名为:versioninfo.xml
<xml version="1.0" encoding="utf-8">
<appversion>10001</appversion>
<appfilename>appfile01</appfilename>
<appurl>http://localhost:8080/VersionUpdateDir/appfile01.apk</appurl>
</xml>
保证客户机通过http能访问xml.显示结果如下图:
代码如下:
//ParseVersionInfo类为工具类,用来解析xml文件的内容,通过hasmap的方式返回。
package com.zoomactech.projectprogressmanager.tools;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.PublicKey;
import java.util.HashMap;
import javax.security.auth.PrivateCredentialPermission;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import android.os.Handler;
import android.util.Log;
public class ParseVersionInfo {
private HashMap<String, String> resulthashMap = new HashMap<String, String>();
//创建获取配置信息的方法,通过hashmap的方式返回最近版本信息。
public HashMap<String, String> parseXml(final String url) throws Exception {
class Newthread extends Thread{
public void run() {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
// TODO Auto-generated method stub
URL versioncheckurl = null;
try {
versioncheckurl = new URL(url);
} catch (Exception e) {