清晰灵活简单易用的安卓应用更新库源码下载
Gradle
repositories { maven { url "https://jitpack.io" } } dependencies { compile 'com.github.czy1121:update:1.0.0' }
基本用法
默认情况下,查询请求会需要三个参数: 包名(package), 版本号(version), 渠道(channel) package/version 从应用的 context 获取
// 设置默认更新接口地址与渠道 UpdateManager.setUrl(mCheckUrl, "yyb"); // 进入应用时查询更新 UpdateManager.check(context); // 在设置界面点击检查更新 UpdateManager.checkManual(context);
设置请求url
设置url后不会额外添加 package/version/channel 等参数
UpdateManager.create(this).setUrl(mCheckUrl).check();
解析查询结果
查询结果需要解析成 UpdateInfo
public class UpdateInfo { // 是否有新版本 public boolean hasUpdate = false; // 是否静默下载:有新版本时不提示直接下载,下次启动时安装 public boolean isSilent = false; // 是否强制安装:不安装无法使用app public boolean isForce = false; // 是否可忽略该版本 public boolean isIgnorable = true; // 是否是增量补丁包,暂不支持 public boolean isPatch = false; public int versionCode; public String versionName; public String updateContent; public String url; public String md5; public long size; public String patchUrl; public String patchMd5; public long patchSize; }
可以定制解析过程
UpdateManager.create(this).setUrl(mCheckUrl).setParser(new UpdateAgent.InfoParser() { @Override public UpdateInfo parse(String source) throws Exception { UpdateInfo info = new UpdateInfo(); // todo return info; } }).check();
更新版本对话框
UpdateManager.create(this).setOnPrompt(new UpdateAgent.OnPromptListener() { @Override public void onPrompt(UpdateAgent agent) { // todo : 根据 agent.getInfo() 显示更新版本对话框,具体可参考 UpdateAgent.OnPrompt } }).check();
没有新版本或出错
UpdateManager.create(this).setOnFailure(new UpdateAgent.OnFailureListener() { @Override public void onFailure(UpdateError error) { Toast.makeText(mContext, error.toString(), Toast.LENGTH_LONG).show(); } }).check();
显示下载进度
可在通知栏显示下载进度,当 info.isSilent 为 true 显示
默认通知栏进度
UpdateManager.create(this).setNotifyId(998).check();
定制通知栏进度
UpdateManager.create(this).setOnNotify(new UpdateAgent.OnProgressListener() { @Override public void onStart() { // todo: start } @Override public void onProgress(int progress) { // todo: progress } @Override public void onFinish() { // todo: finish } }).check();
定制下载进度的对话框,当 info.isSilent 为 false 显示
UpdateManager.create(this).setOnProgress(new UpdateAgent.OnProgressListener() { @Override public void onStart() { // todo: start } @Override public void onProgress(int progress) { // todo: progress } @Override public void onFinish() { // todo: finish } }).check();