Android实现自动更新功能

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

步骤

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

效果图

Android实现自动更新功能_第1张图片
Android实现自动更新功能_第2张图片

下载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);}

更多相关文章

  1. Android设备10大不应忽略的功能
  2. Android物理按键功能更改
  3. Android消息提示框和对话框的使用
  4. android webview处理h5打开本地文件浏览器的功能
  5. 最新消息:Android 4.0新增功能
  6. Android的功能特性简介
  7. Android安卓系统提示应用程序未安装的解决方法
  8. Android中,如何实现在图片上添加返回功能
  9. Android 2.2数据共享功能开启与否将由运营商自主决定

随机推荐

  1. SQL SERVER中强制类型转换cast和convert
  2. 通过使用正确的search arguments来提高SQ
  3. SQL Server配置管理器无法连接到WMI提供
  4. SQL 中STUFF用法
  5. SQL 联合查询与XML解析实例详解
  6. SQL Server 2012 安装与启动图文教程
  7. sql server定时作业调用Kettle job出错的
  8. DATASET 与 DATAREADER对象有什么区别
  9. SQL数据分页查询的方法
  10. Sql Server 2016新功能之Row-Level Secur