android 檢測新版本,下載更新功能

幾乎每個app都要涉及到版本迭代,所以,版本更新是一份很重要的功能。今天我也給我的app做了一份版本更新的功能。

1.基礎(chǔ)知識,打開項(xiàng)目app里,找到bulid.gradle,可以看到versionCode 和versionName,其中versionCode是整型值,理論上,每次改動其值都要加1,versionName是版本名,這個也就是我們在app里經(jīng)??吹降陌姹久簐1.0.1.

我們升級版本的原理就是,請求后臺,拿到當(dāng)前程序的版本號,也就是VersionCode,去和請求到的數(shù)據(jù)作比對,如果自己的服務(wù)器返回的版本號大于當(dāng)前的就可以提示更新了。

2.由于要做到兼容,我們不得不提動態(tài)權(quán)限和8.0出現(xiàn)的問題。

首先,我們得在配置文件里聲明一些需要的權(quán)限。


這兩個權(quán)限需要特殊注意一下。

接著我們找到合適的時機(jī),做一次網(wǎng)絡(luò)請求,然后判斷是否要更新


然后,就是要切記,一定要開啟先的線程去下載


這里需要注意下,當(dāng)我們的file文件下載完畢,需要安裝的時候,是很容易出錯的,這個時候我們要分版本來判斷,也就是在applyInstallCheck方法里


判斷當(dāng)前系統(tǒng)如果是大于等于8.0,那么就要判斷是否有安裝apk的權(quán)限,這個權(quán)限是8.0后新出現(xiàn)的,百度一下就可以看到詳細(xì)的介紹,Android?8.0? 中,Google?移除掉了容易被濫用的“允許位置來源”應(yīng)用的開關(guān),取消了“允許未知來源”的檢查框,如果想安裝一些第三方商店的應(yīng)用,則需要在每一次都手動授予“安裝未知應(yīng)用”的許可。

這里還有一點(diǎn)要注意,F(xiàn)ragment里動態(tài)申請權(quán)限和在Activity里申請是不一樣的,這里要使用Fragment的requestPermissions方法,而不是Activity里的,不然就會出現(xiàn)不走授權(quán)回調(diào)的情況。那么,說了這么多,我們再授權(quán)回調(diào)里又做了什么?


很簡單,拿到授權(quán)我們就去安裝apk,如果沒有,我們就要引導(dǎo)用戶去開啟相關(guān)的權(quán)限。

最后,就是安裝了


按照這樣一套流程走下走下來,我華為榮耀4C(4.4),朵唯手機(jī)(4.4),魅族(5.1),堅果pro(7.1.2),一加3(7.1.2),和三星s8(8.1)上測試都是很正常的,順利的一套走下來。

在此記錄下,希望自己成長和幫助更多的Android開發(fā)者。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容