android更新版本下载安装,Android版本更新下载apk自动安装的方法
程序中XXXX部分和//TODO部分根据具体项目进行修改和完善。
public class UpdateHelper {
private static final String TAG = "UpdateHelper";
private static final String FILE_PROVIDER_AUTHORITY = "XXXX";
private static final String DATA_AND_TYPE = "application/vnd.android.package-archive";
private static final String UPDATE_URL = "XXXX";
public static boolean checkForUpdated(Context context) {
boolean updated = false;
try {
int currentVersion = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
//TODO 获取服务端最新版本号,与currentVersion做比较
return updated;
}
public static void autoInstallUpdate(final Context context) {
OkGo.get(UPDATE_URL).tag(context).execute(new FileCallback() {
@Override
public void onSuccess(Response response) {
File file = response.body();
setPermission(file.getPath());
installApk(context, file.getPath());
}
@Override
public void onError(Response response) {
super.onError(response);
//TODO 网络请求出错
}
@Override
public void onFinish() {
super.onFinish();
//TODO 网络请求结束
}
@Override
public void downloadProgress(Progress progress) {
super.downloadProgress(progress);
int fraction = (int) (progress.fraction * 100);
//TODO 下载中,显示下载进度
}
});
}
private static void installApk(Context context, String apkPath) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
File file = new File(apkPath);
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) {
Uri apkUri = FileProvider.getUriForFile(context, FILE_PROVIDER_AUTHORITY, file);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setDataAndType(apkUri, DATA_AND_TYPE);
} else {
Uri apkUri = Uri.fromFile(file);
intent.setDataAndType(apkUri, DATA_AND_TYPE);
}
context.startActivity(intent);
}
private static void setPermission(String filePath) {
String command = "chmod " + "777" + " " + filePath;
Runtime runtime = Runtime.getRuntime();
try {
runtime.exec(command);
} catch (IOException e) {
e.printStackTrace();
}
}
}
android更新版本下载安装,Android版本更新下载apk自动安装的方法相关推荐
- Android7.0下载Apk自动安装
Android7.0下载Apk自动安装 1. 整体需求 下载APK文件 使用DownloadManager来下载 在应用界面中展示下载进度 安装下载后的APK文件 root模式: 可以自动安装,不需要 ...
- android 监听安装来源_Flutter插件开发之APK自动安装
点击上方的终端研发部,右上角选择"设为星标" 每日早9点半,技术文章准时送上 公众号后台回复"学习",获取作者独家秘制精品资料 往期文章 记五月的一个Andro ...
- linux自动安装光盘,Linux(centos6.4)自动安装光盘制作
一.为什么要制作Linux自动安装光盘 1.机房的服务器少则几十台,多则上百台,几千台,安装的时候,这么多的服务器不可能一台一台的安装,这时候就需要自动安装光盘的协助. 2.如果机房的某台服务器需要格 ...
- Android 更新版本 应用程序未安装 解决办法
问题描述 在做Android应用版本更新时遇到一个问题,在原始的版本中进行升级,下载了新版的app后安装时,手机报"应用未安装",升级失败. 如下图所示: 分析原因 主要有两个方面 ...
- php 自动下载apk,Android 下载apk 自动 安装
Android N 后,由于不能访问私有路径,需要设置成共享文件 /** * android N 执行此安装方法 * * @param context 上下文 * @param file 文件路径 * ...
- 解决xshell6或者xftp6强制更新版本,但又无法下载文件的问题
今天又遇到下载安装了 Xshell 6 或者Xftp 6提示软件必须更新最新版否则不让使用!但是下载更新又提示下载文件失败?这是为啥呢? 主要原因:今年NetSarang官网针对免费版和评估版,仅提供 ...
- android更新后名称不变,Android 10这个新名字虽然无聊 但改名却是正确之举
本文由腾讯数码独家发布 自从2009年谷歌发布Android 1.5 Cupcake系统以来,安卓的每个新版本系统在数字后面都会加一个糕点或甜品的名称来起到点缀以及个性化的作用.比如对我个人来说,冰淇 ...
- android 运行版本不兼容,Android开发之——版本兼容性问题
Android系统中向下兼容性比较差,实际开发和测试中会遇到版本兼容性的问题,本题的成文参考了网上的部分教程和个人在开发中的实例,进行归纳和总结而成. 版本兼容问题 版本兼容性: Android系统中 ...
- android 系统版本 发布时间,Android O版本系统将在8月21日正式发布
关于即将发布的Android O版本系统,现在还有很多让人感到困惑的地方.尽管谷歌之前表示将在8月发布Android O的正式版,但是具体的发布日期却被推迟,因此许多Android粉丝都对新版本系统更 ...
- Android——查看Android Studio版本支持的Android版本问题
android studio各版本支持的android 版本是有规定的.比如如果使用的是android 2.3.3的话,那么现在如果想使用android p版本的sdk tool的话,可能存在问题,同 ...
最新文章
- Android属性 android:focusableInTouchMode
- MINA与JMX集成(翻译)
- 哲学家就餐问题php代码,Python实现哲学家就餐问题实例代码
- linux中国用户,Linux中国 适合新用户的Linux
- 一个简单的单例模式的类
- JUC 中断线程的3种方式
- 4.XXE (XML External Entity Injection)
- L2TP详解(五)——Client Initiated隧道和会话建立过程
- 王道训练营—Java编程经典50题
- 4个步骤教你建立中后台后台通用权限管理系统
- MyBatis递归查询
- 【CodingNoBorder - 10】无际软工队 - 求职岛:ALPHA 阶段事后分析
- 2种方式!带你快速实现前端截图
- 云计算发展趋势-华为HCIA云计算学习笔记六
- 草莓电吉他音源 Orange Tree Samples Evolution Strawberry Kontakt
- golang并发模式work
- Hololens动态显示图片
- 越来越大的人使用计算机的原因,为什么越来越多的人喜欢用WPS这款电脑软件?这几点是关键原因...
- mac 微信多开 应用程序多开
- 51单片机仿真例程-双机串行通信