1、ContentProvider设置
<!-- 集成安装服务 -->
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}"
android:exported="false"
android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/intall_paths" />
</provider>
其中,install_paths内容如下:
<paths>
<external-path
name="app_update"
path="MarkdownL/AppUpdate" />
</paths>
关于install_paths设置的内容,可以看Android 的收藏夹
2、加入依赖
//更新用的控件
implementation 'com.azhon:appupdate:1.5.6'
3、在主页面的MainActivity中设置检测更新的代码
//url 更新地址
//isForse 是否强制更新
//versonCode 版本代号
//log 版本介绍
//target_size 版本Apk大小
//version 版本名称
private void CheckNewVersion(final String url, final Boolean isForse, int versonCode, final String log, final String target_size, final String version) {
/*
* 整个库允许配置的内容
* 非必选
*/
android.util.Log.e("version","更新");
UpdateConfiguration configuration = new UpdateConfiguration()
//输出错误日志
.setEnableLog(false)
//设置自定义的下载
//.setHttpManager()
//下载完成自动跳动安装页面
.setJumpInstallPage(true)
//支持断点下载
.setBreakpointDownload(true)
//设置是否显示通知栏进度
.setShowNotification(true)//报错改为false
//设置强制更新
.setForcedUpgrade(isForse)
//设置对话框按钮的点击监听
//.setButtonClickListener()
//设置下载过程的监听
.setOnDownloadListener(this);
DownloadManager manager = DownloadManager.getInstance(this);
manager.setApkName("appupdate.apk")
.setApkUrl(url)
.setSmallIcon(R.mipmap.logo)
.setShowNewerToast(true)
.setConfiguration(configuration)
.setDownloadPath(Environment.getExternalStorageDirectory() + "/MarkdownL/AppUpdate")
.setApkVersionCode(versonCode)
.setApkVersionName(version)
.setApkSize(target_size)
.setAuthorities(getPackageName())
.setApkDescription(log)
.download();
}