1.将解压后的appupdatelib文件(见附件)复制到对应的项目下,如下图所示
2.找到项目下的settings.gradle文件,将该lib导入项目:
include ‘:appupdatelib’
3.找到app下的build.gradle,引用该lib:
implementation project(‘:appupdatelib’)
4.找到app->src->main下的AndroidManifest文件,声明对应的隐私权限。authorities属性格式为”包名+.fileprovider”:
<provider
android:name=“androidx.core.content.FileProvider”
android:authorities=“cn.sinowonder.bluetoothtest.fileprovider”
android:exported=“false”
android:grantUriPermissions=“true”>
<meta-data
android:name=“android.support.FILE_PROVIDER_PATHS”
android:resource=“@xml/filepaths”/>
</provider>
5.与之对应的filepaths.xml文件如下:
<?xml version=“1.0” encoding=“utf-8”?>
<paths xmlns:android=“http://schemas.android.com/apk/res/android”>
<external-path name=“external” path=“.”/>
</paths>
6.找到app->src->main下的AndroidManifest文件,声明需要用到的权限:
//允许程序访问有关GSM网络信息
<uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE” />
//允许程序打开网络套接字
<uses-permission android:name=“android.permission.INTERNET”/>
//允许程序安装外部应用权限
<uses-permission android:name=“android.permission.REQUEST_INSTALL_PACKAGES”/>
//允许程序写外置sd卡权限
<uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE”/>
//允许程序读外置sd卡权限
<uses-permission android:name=“android.permission.READ_EXTERNAL_STORAGE”/>
7.在MainActivity中请求对应权限,这里只需要请求两个:
mPermissionList.add(Manifest.permission.INTERNET);
mPermissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
8.在MianActivity中调用升级方法:
mUpdateTask.getUpdateTask(this, url, false, 1);
9.在服务器端配置对应的.json文件
title:标题
content:更新内容
url:apk下载地址
mod5:加密方法
versionCode:版本号
10.在不不使用时及时注销升级任务:
mUpdateTask.cancelUpdateTask();
附件:appupdatelib