- 实现android版本更新
- 强制更新在前台下载,普通更新在后台下载
- 支持Android M、N、O、P、Q
-
简单调用(需要自行处理运行时权限)
mUpdateVersionModel = new UpdateVersionModel(); // 暂时用不到MD5 mUpdateVersionModel.setApkMd5("b97bea014531123f94c3ba7b7afbaad2"); // 暂时用不到VersionName mUpdateVersionModel.setApkVersionName("3.0.0"); // code用来判断是否是新版本 mUpdateVersionModel.setApkVersionCode(1024); // 新版本下载地址 mUpdateVersionModel.setApkUrl("http://7xvtvi.com1.z0.glb.clouddn.com/app-release.apk"); // 更新标题 mUpdateVersionModel.setUpdateTitle("更新测试"); // 更新内容 mUpdateVersionModel.setUpdateDes("1,添加删除信用卡接口。\r\n2,添加vip认证。\r\n3,区分自定义消费,一个小时不限制。\r\n4,添加放弃任务接口,小时内不生成。\r\n5,消费任务手动生成。"); // 是否强制更新 mUpdateVersionModel.setConstraint(false); // 安装包大小(仅用于展示) mUpdateVersionModel.setApkSize("5M"); new UpdateAppManager .Builder() // 当前Activity .setActivity(this) // 更新地址 .setUpdateModel(mUpdateVersionModel) // 实现httpManager接口的对象 .setHttpManager(new DefaultHttpManager()) // FileProvider .setFileProvider("com.sdwfqin.appupdatedemo.fileprovider") // 文件下载路径(必须“/”结尾) .setSavePath(PathUtils.getExternalStoragePath() + "/AppUpdate/") .build() .update();
-
Android N及以上版本需要自行处理
FileProvider
(避免不必要的冲突)此处仅供参考,可查看Demo
-
在
Manifest
文件的application
标签中添加``` xml <provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths_public" /> </provider> ```
-
在
res/xml
目录下创建对应的resource
文件(设置对应的文件下载目录)<paths> <external-files-path name="name" path="AppUpdate" /> <external-path name="name" path="AppUpdate" /> </paths>
-
-
关于默认的Apk下载
默认的Apk下载
DefaultHttpManager
为可选,如需使用需添加下面的依赖,并且在Application
中初始化下载FileDownloader.setupOnApplicationOnCreate(this);
。如果自行实现下载接口,可参考DefaultHttpManager
,新建一个类实现HttpManager
中的方法即可,注意,请务必确保回调接口在主线程中掉用。implementation 'com.liulishuo.filedownloader:library:1.7.7'
-
如果在Android P中出现
cleartext traffic permitted
错误可参考Demo与stackoverflow中的解决方案。
- 安装包MD5校验
- 忽略升级
Copyright 2018 zhangqin
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.