内容简介:初始化使用
重点:如果没有设置 downloadPath
则默认为 getExternalCacheDir()
目录,同时不会申请[存储]权限!
目录
编译问题
- 因为适配了Android O的通知栏,所以依赖的v7包版本比较高
appcompat-v7:26.1.0
- 使用的gradle版本为
gradle-4.1-all
,所以建议使用Android Studio 3.0
及以上的版本打开此项目
效果图
功能介绍
- 支持断点下载
- 支持后台下载
- 支持自定义下载过程
- 支持 设备 >= Android M 动态权限的申请
- 支持通知栏进度条展示(或者自定义显示进度)
- 支持Android N
- 支持Android O
- 支持中/英文双语
- 支持自定内置对话框的样式
- 使用HttpURLConnection下载,未集成其他第三方框架
更加详细的文档参阅此处《AppUpdate API文档》
DownloadManager:配置文档
初始化使用 DownloadManager.getInstance(this)
属性 | 描述 | 默认值 | 是否必须设置 |
---|---|---|---|
context | 上下文 | null | true |
apkUrl | apk的下载地址 | null | true |
apkName | apk下载好的名字 | null | true |
downloadPath | apk下载的位置 | getExternalCacheDir() | false |
showNewerToast | 是否提示用户 "当前已是最新版本" | false | false |
smallIcon | 通知栏的图标(资源id) | -1 | true |
configuration | 这个库的额外配置 | null | false |
apkVersionCode | 更新apk的versionCode (如果设置了那么库中将会进行版本判断 下面的属性也就需要设置了) |
1 | false |
apkVersionName | 更新apk的versionName | null | false |
apkDescription | 更新描述 | null | false |
apkSize | 新版本的安装包大小(单位M) | null | false |
authorities | 兼容Android N uri授权 | 应用包名 | false |
UpdateConfiguration:配置文档
属性 | 描述 | 默认值 |
---|---|---|
notifyId | 通知栏消息id | 1011 |
notificationChannel | 适配Android O的渠道通知 | 详情查阅源码 |
httpManager | 设置自己的下载过程 | null |
breakpointDownload | 是否需要支持断点下载 | true |
enableLog | 是否需要日志输出 | true |
onDownloadListener | 下载过程的回调 | null |
jumpInstallPage | 下载完成是否自动弹出安装页面 | true |
showNotification | 是否显示通知栏进度(后台下载提示) | true |
forcedUpgrade | 是否强制升级 | false |
onButtonClickListener | 按钮点击事件回调 | null |
dialogImage | 对话框背景图片资源(图片规范参考demo) | -1 |
dialogButtonColor | 对话框按钮的颜色 | -1 |
dialogButtonTextColor | 对话框按钮的文字颜色 | -1 |
所有版本:点击查看
使用步骤
第一步: app/build.gradle
进行依赖
implementation 'com.azhon:appupdate:1.7.3' 复制代码
第二步:创建 DownloadManager
,更多用法请查看 这里示例代码
DownloadManager manager = DownloadManager.getInstance(this); manager.setApkName("appupdate.apk") .setApkUrl("https://raw.githubusercontent.com/azhon/AppUpdate/master/apk/appupdate.apk") .setSmallIcon(R.mipmap.ic_launcher) //可设置,可不设置 .setConfiguration(configuration) .download(); 复制代码
第三步:兼容Android N 及以上版本,在你应用的 Manifest.xml
添加如下代码
<--! android:authorities="${applicationId}" 这个值必须与DownloadManager中的authorities一致(不设置则为应用包名)--> <provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths_public" /> </provider> 复制代码
第四步:资源文件 res/xml/file_paths_public.xml
内容
<?xml version="1.0" encoding="utf-8"?> <paths> <external-path name="app_update_external" path="/" /> <external-cache-path name="app_update_cache" path="/" /> </paths> 复制代码
- 兼容Android O及以上版本,需要设置
NotificationChannel(通知渠道)
;库中已经写好可以前往查阅 NotificationUtil.java - 温馨提示:升级对话框中的内容是可以上下滑动的哦:smile:!
- 如果需要实现自己一套下载过程,只需要继承
BaseHttpDownloadManager
并使用listener更新进度
public class MyDownload extends BaseHttpDownloadManager {} 复制代码
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- iOS:轻量可定制的防键盘遮挡textField实现总结
- 定制优化 Nextcloud 镜像
- goim 架构与定制
- “私人定制” CLI 工具
- Docker 定制镜像
- webpack 定制前端开发环境
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C++面向对象程序设计
萨维奇 (Walter Savitch) / 周靖 / 清华大学出版社 / 2003-12 / 59.0
《C++面向对象程序设计》具备良好的编排体系,适合打算涉足编程领域的读者阅读,尤其适合大一学生。它最大的特色是Savitch教授最受欢迎的写作风格,这一风格非常适合初学者,能迅速引导他们开始编程实践。《C++面向对象程序设计》包括全面的习题、项目、编程提示、编程示例、编程陷阱以及有用的小结,以帮助初学者更清楚地了解C++。一起来看看 《C++面向对象程序设计》 这本书的介绍吧!