* 檢測軟件更新
*/
public void checkUpdate(boolean showAlert, final View v) {
if(!NetWorkUtil.isNetworkConnected(mContext)){
new AlertDialog.Builder(mContext).setTitle("提示")
.setMessage("網絡異常,請稍後重試")
.setPositiveButton("確定", null).show();
v.setEnabled(true);
return;
}
this.showAlert = showAlert;
view = v;
new Thread(){
public void run(){
// 獲取當前軟件版本
double versionCode = getVersionCode(mContext);
// 把version.xml放到網絡上,然後獲取文件信息
// InputStream inStream =
// ParseXmlService.class.getClassLoader().getResourceAsStream("version.xml");
// 解析XML文件。 由於XML文件比較小,因此使用DOM方式進行解析
ParseXmlService service = new ParseXmlService();
try {
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("OPTIONS");
conn.getResponseCode();
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(5 * 1000);
conn.setRequestMethod("GET");
InputStream inStream = conn.getInputStream();
mHashMap = service.parseXml(inStream);
} catch (Exception e) {
mHandler.sendEmptyMessage(ERROR);
Log.e(TAG, e.toString());
//Toast.makeText(mContext, e.toString(), Toast.LENGTH_LONG).show();
}
if (null != mHashMap) {
serviceCode = Double.valueOf(mHashMap.get("version"));
name = mHashMap.get("name");
enforceUpdate = Integer.valueOf(mHashMap.get("enforceUpdate"));
// if(null!=mHashMap.get("mHashMap"))
// minimumVersion = Integer.valueOf(mHashMap.get("minimumVersion"));
// //忽略版本判斷
// if(minimumVersion==-1){
// return false;
// }else {
// 版本判斷
if (serviceCode > versionCode) {
mHandler.sendEmptyMessage(-1);
return;
}
mHandler.sendEmptyMessage(0);
// }
}
}
}.start();
}