Android检查版本更新

        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;
}
}
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值