- 适配Android 13通知运行权限,且当设置
showNotification(true)
时,点击对话框的升级按钮会申请通知栏权限,无论是否同意都将会继续下载 - 当设置强制更新
forcedUpgrade(true)
时,显示的对话框会显示下载进度条
- 或者添加加微信:hb958460248(备注 AppUpdate)
- 支持Java、Kotlin
- 支持AndroidX
- 支持后台下载
- 支持强制更新
- 支持自定义下载过程
- 支持Android4.1及以上版本
- 支持通知栏进度条展示,适配到Android 13
- 支持中文/繁体/英文语言(国际化)
- 支持自定义内置对话框样式
- 支持取消下载(如果发送了通知栏消息,则会移除)
- 支持下载完成,打开新版本后删除旧安装包文件
- 不需要申请存储权限
- 使用HttpURLConnection下载,未集成其他第三方框架
implementation 'io.github.azhon:appupdate:4.3.1'
由于GooglePlay政策禁止应用内更新,所以可以通过多渠道的方式进处理
- GooglePlay政策
- 本库提供了一个没有任何实现的版本点击查看详细内容
android {
//...
productFlavors {
other {}
googlePlay {}
}
}
dependencies {
otherImplementation 'io.github.azhon:appupdate:latest-version'
googlePlayImplementation 'io.github.azhon:appupdate-no-op:latest-version'
}
val manager = DownloadManager.Builder(this).run {
apkUrl("your apk url")
apkName("appupdate.apk")
smallIcon(R.mipmap.ic_launcher)
//设置了此参数,那么内部会自动判断是否需要显示更新对话框,否则需要自己判断是否需要更新
apkVersionCode(2)
//同时下面三个参数也必须要设置
apkVersionName('v4.2.2')
apkSize("7.7MB")
apkDescription("更新描述信息(取服务端返回数据)")
//省略一些非必须参数...
build()
}
manager?.download()
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Service
- 框架内部支持国际化(其他语言只需要在对应的
string.xml
中取相同的名字即可) - 如果你需要修改框架内部的一些文字,你只需要在
string.xml
中取相同的名字即可以覆盖框架内设定的 - 查看版本库中的Log只需要过滤
AppUpdate
开头的Tag - 支持校验安装包的MD5避免重复下载,只需要
Builder
设置安装包的MD5即可 - 下载完成 打开新版本后删除旧安装包文件
//旧版本apk的文件保存地址
val result = ApkUtil.deleteOldApk(this, "${externalCacheDir?.path}/appupdate.apk")
- 温馨提示:升级对话框中的内容是可以上下滑动的哦!
- 如果需要实现自己一套下载过程,只需要继承
BaseHttpDownloadManager
class MyDownload : BaseHttpDownloadManager() {}
-
v4.3.1(2023/09/05)
- [优化] 内置对话框适配pad
如果这个库有帮助到你并且你很想支持库的后续开发和维护,那么你可以扫描下方二维码随意打赏我,我将不胜感激赞赏列表