Android实现自动更新功能

本文介绍了一种在Android应用中实现自动更新的方法。通过将新版本的APK上传至服务器,并利用HTTP请求获取版本信息及下载链接,客户端能够检查更新并下载安装。文章提供了关键代码示例,包括如何下载新APK文件以及触发系统安装流程。

Android实现自动更新功能

Android自动更新的功能可以使用第三方的SDK来实现,但是类似友盟,就不支持x86手机的自动更新,科大讯飞,弹窗是全局的,小米手机就会默认把弹窗权限关掉不允许弹出提示框,还要用户手动开启才行,如果我们自己有服务器,也可以自己来实现自动更新功能

步骤

我们把要更新的新的apk版本上传到我们的服务器,后台暴露一个接口,可以给我返回版本号,更新时间,更新描述,下载地址等信息,就够了,我们根据版本号判断应用是否有更新,如果有更新,下载新的APK,然后提示安装就可以了。

效果图

P1
P2

下载APK

/**
 * 下载新的APK
 */
protected void downloadNewApk() {
    // 下载地址
    String apkurl = "http://resource.bitmain.com/wallet%2Fbmwallet.apk";
    HttpUtils httpUtils = new HttpUtils();
    httpUtils.download(apkurl, Environment.getExternalStorageDirectory().getPath() + "/bmwallet.apk", new RequestCallBack<File>() {
        @Override
        public void onSuccess(ResponseInfo<File> arg0) {
            // 下载成功
            Toast.makeText(mContext, "下载成功", Toast.LENGTH_SHORT).show();
            // 安装APK
            installApk();
        }

        @Override
        public void onFailure(HttpException e, String arg1) {
            // 下载失败
            Toast.makeText(mContext, "下载失败", Toast.LENGTH_SHORT).show();
            // 打印异常信息
            e.printStackTrace();
        }

        @Override
        public void onLoading(long total, long current, boolean isUploading) {
            // TODO 显示下载进度

        }
    });
}

提示安装APK

/**
 * 安装APK 打开系统的API安装APK
 */
protected void installApk() {
    // 调用系统API安装APK
    Intent intent = new Intent("android.intent.action.VIEW");
    intent.addCategory("android.intent.category.DEFAULT");
    intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory().getPath() + "/bmwallet.apk")), "application/vnd.android.package-archive");
    mContext.startActivity(intent);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值