清晰灵活简单易用的安卓应用更新库源码下载

清晰灵活简单易用的安卓应用更新库源码下载

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();


发表评论

要发表评论,您必须先登录