public string getvesionname(context context) catch (namenotfoundexception e)
return versionname;}
複製**
更新以及安裝程式需要的許可權,在androidmanifest.xml中新增
複製**
獲取apk的versioncode,即androidmanifest.xml中定義的android:versioncode
public int getversioncode(context context) catch (namenotfoundexception e)
return versioncode;}
複製**
伺服器端version.json,包含apk路徑以及版本資訊
複製**
獲取遠端伺服器的版本資訊
private void getremotejson(string host) throws clientprotocolexception, ioexception, jsonexception
reader.close();
}jsonobject object = (jsonobject) new jsontokener(sb.tostring()).nextvalue();
this.apkfullname = object.getstring("apkfullname");
this.versionname = object.getstring("versionname");
this.versioncode = integer.valueof(object.getint("versioncode"));}
複製**
發現更新的提醒視窗,通過alertdialog實現
private void shoversionupdate(string newversion, final string updateurl)
// cancel
}).setnegativebutton(mcontext.getstring(r.string.alertdialog_cancel_button), new dialoginte***ce.onclicklistener()
}).create();
dialog.show();}
複製**
private void downfile(final string url)
fileoutputstream = new fileoutputstream(new file(update_dir, updatefilename));
byte buf = new byte[1024];
int ch = -1;
int count = 0;
while ((ch = is.read(buf)) != -1) }}
fileoutputstream.flush();
if (fileoutputstream != null)
handler.post(new runnable()
});} catch (exception e)
}}.start();}
複製**
安裝更新
private void installupdate()
複製**
至此更新需要函式就完成了
應用自動更新封裝 Android
自動更新的意義 分析原理 利用notification通知使用者更新進度 實踐 我們先開下大體的思路流程 真正的建立連線 private void makerequest throws ioexception catch ioexception e override public void run ...
通過RSS實現app的自動更新
其實這個想法早在十年前我還在做桌面應用的時候就想過了,而且還在乙個delphi程式裡嘗試了一下,但是因為後來沒再做桌面應用,這事也就放下了。最近在做移動應用,又開始覺得需要這樣乙個功能。本來這種事情交給google play處理就好了,但是因為國內的奇葩環境,完全依賴google play並不現實,...
自動更新原理
安裝補丁的時候,客戶端的主程式一般是要關閉的,除非採用動態解除安裝 調入元件的技術,比如網路遊戲,就是盡量讓玩家邊玩遊戲邊更新。人們嫌這樣的公升級仍然太麻煩,後來出現了b s結構,大家像抓住了救命稻草一樣的追捧至今,希望能從這些勞動中解脫出來。b s結構就是瀏覽器 伺服器結構,它所有的功能,都是在瀏...