Kongzue APP更新工具:Github
更新日誌:
1.3.0:修復安卓8.0裝置上安裝崩潰的問題;
1.4.0:修復進度顯示可能存在問題的bug;
說明
- 本工具無需許可權,但在 targetSdkVersion >= 26 的情況時可能出現安裝程式閃退但不報錯的問題,系 Android 8.0 的新規定,請在您的應用中新增如下許可權即可:
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
複製程式碼
- 本工具提供下載、安裝步驟,因網路請求框架不確定,本工具不包含到您伺服器的檢查更新的網路請求,請在獲取到相應的更新資訊請您自行完成。
- 本工具需要您提供的引數對照表如下:
欄位 | 含義 | 是否必須 |
---|---|---|
info | 更新日誌 | 可選 |
ver | 版本號 | 可選 |
downloadUrl | 下載地址 | 必須 |
me(Context) | 上下文索引 | 必須 |
packageName | 包名 | 必須 |
onDownloadListener | 下載監聽器 | 可選 |
需要的許可權:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
複製程式碼
準備
- 修改 AndroidManifest.xml
因 Android 7.0規範限定,我們需要建立一個共享目錄來儲存下載的檔案
請在 AndroidManifest.xml 中加入如下程式碼:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="您的包名">
<uses-permission android:name="android.permission.INTERNET"/>
<application
...>
...
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="您的包名.fileProvider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_path"/>
</provider>
</application>
</manifest>
複製程式碼
接下來在 res 目錄下建立資料夾 xml,並新增檔案 file_path.xml:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<paths>
<external-path path="" name="download"/>
</paths>
</resources>
複製程式碼
- 使用前請先建立UpdateInfo,舉例方法如下
updateInfo = new UpdateInfo()
.setInfo("1.上線了極力要求以至於無法再拒絕的收入功能
" +
"2.出行的二級分類加入了地鐵、地鐵、地鐵
" +
"3.「關於」新增應用商店評分入口,你們知道怎麼做
" +
"4.「關於」還加入了GitHub地址,情懷+1s
" +
"5.全新的底層適配框架,優化更多機型")
.setVer("v2.5")
.setDownloadUrl("http://paywhere.kongzue.com/downloads/paywhere.apk");
複製程式碼
下載並安裝
- 使用如下語句建立下載工具:
me(Context) 傳入上下文索引,一般使用本 Activity 即可
packageName 可直接使用 BuildConfig.APPLICATION_ID 獲取:
UpdateUtil updateUtil = new UpdateUtil(MainActivity.this, BuildConfig.APPLICATION_ID);
複製程式碼
- 開始下載:
updateUtil.doUpdate(updateInfo);
複製程式碼
下載完成後會自動呼叫安裝。
- 關於下載的監聽
您可以通過以下程式碼監聽下載過程:
UpdateUtil updateUtil = new UpdateUtil(MainActivity.this, BuildConfig.APPLICATION_ID)
.setOnDownloadListener(new UpdateUtil.OnDownloadListener() {
@Override
public void onStart(long downloadId) {
Log.i("MainActivity", "onStart: 下載開始");
}
@Override
public void onDownloading(long downloadId, int progress) {
Log.i("MainActivity", "onStart: 下載中:"+progress);
}
@Override
public void onSuccess(long downloadId) {
Log.i("MainActivity", "onStart: 下載完成");
}
})
複製程式碼
其他
可選的更新提示對話方塊
KongzueUpdateSDK 提供了一個可選使用的簡易更新提示對話方塊,呼叫方法如下:
UpdateUtil updateUtil = new UpdateUtil(MainActivity.this, BuildConfig.APPLICATION_ID)
.showNormalUpdateDialog(updateInfo,
"檢查到更新(" + updateInfo.getVer() + ")",
"從商店下載",
"直接下載",
"取消");
複製程式碼
引入KongzueUpdateSDK到您的專案
引入方法:
implementation `com.kongzue.kongzueupdatesdk:kongzueupdatesdk:1.4.0`
複製程式碼
額外的小工具:
UpdateUtil.isWifi() //判斷Wifi狀態
UpdateUtil.isShowProgressDialog = true; //是否開啟進度對話方塊(預設開啟)
複製程式碼