private static final int ISNEEDUPDATE=11;
private static final int NOTNEEDUPDATE=12;
/**
* 检查软件是否有更新版本*
* @return
*/
private void CheckVersion(){
// 获取网络上的xml文件,然后获取文件信息
String path = "https://....../version.xml";
HttpUtils httpUtils=new HttpUtils();
httpUtils.send(HttpMethod.GET, path, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
Log.e("ttt", "failure");
}
@Override
public void onSuccess(ResponseInfo<String> t) {
String xml=t.result;
ByteArrayInputStream tInputStringStream = null;
try
{
if (xml != null && !xml.trim().equals("")) {
tInputStringStream = new ByteArrayInputStream(xml.getBytes());
}
}
catch (Exception e) {
return;
}
XmlPullParser parser = Xml.newPullParser();
int new_versioncode = 0;
String down_url = null;
try {
parser.setInput(tInputStringStream, "UTF-8");
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:// 文档开始事件,可以进行数据初始化处理
break;
case XmlPullParser.START_TAG:// 开始元素事件
String name = parser.getName();
if (name.equalsIgnoreCase("update")) {
}
if (name.equalsIgnoreCase("version")) {
new_versioncode=Integer.parseInt(parser.nextText());
Log.e("version",new_versioncode+"");// 如果后面是Text节点,即返回它的值
}
if(name.equalsIgnoreCase("name")){
Log.e("name",parser.nextText());// 如果后面是Text节点,即返回它的值
}
if(name.equalsIgnoreCase("url")){
down_url=parser.nextText();
Log.e("url",down_url);// 如果后面是Text节点,即返回它的值
}
break;
case XmlPullParser.END_TAG:// 结束元素事件
break;
}
eventType = parser.next();
}
tInputStringStream.close();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Message message=handler.obtainMessage();
if(getVersionCode(mContext)>=new_versioncode){
Log.e("url","if");
message.what=NOTNEEDUPDATE;
handler.sendMessage(message);
}else{
Log.e("url","else");
message.what=ISNEEDUPDATE;
message.obj=down_url;
handler.sendMessage(message);
}
}
});
}
/**
* 获取软件版本号
*
* @param context
* @return
*/
private int getVersionCode(Context context){
int versionCode = 0;
//获得当前使用版本
PackageManager packageManager = context.getPackageManager();
PackageInfo packInfo;
try {
packInfo = packageManager.getPackageInfo(context.getPackageName(),0);
versionCode = packInfo.versionCode;
nowVersionName = packInfo.versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
return versionCode;
}
/**
* 获取当前版本号名称
* @return
* @throws Exception
*/
private String getVersionName() throws Exception {
PackageManager packageManager = getPackageManager();
PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0);
return packInfo.versionName;
}
static String msgobjString=null;
private Handler handler=new Handler(){
@Override
public void handleMessage(final Message msg) {
switch (msg.what) {
case NOTNEEDUPDATE:
toast("已经是最新版本了");
break;
case ISNEEDUPDATE:
msgobjString=msg.obj.toString();
toast("不是最新版本");
break;
default:
break;
}
}
};