更新APP
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更新APP相关的知识,希望对你有一定的参考价值。
流程:由于没弄服务器,很多数据模拟写死的,比如服务器给的版本号,写死是2.0。需要下载的APP,写死成SD卡上的APP
1、获取服务器版本号(假设是2.0) 不等于本地版本号1.0 → 2、下载APP (下载完成) → 3、APP内更新安装 (安装完成) → 4、删除APK安装包
private String new_version="2.0";//应为服务器获取来的版本,这里测试用手写成2.0
private String path= Environment.getExternalStorageDirectory()+"/new.apk";
private File myfile=new File(path);
private Context context;
1、检测本地APP版本号:调用此方法,返回的即是版本号。我的APP是1.0(或者出错的异常)
public String getVersion() {//获取版本号
try {
PackageManager manager = this.getPackageManager();
PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);
String version = info.versionName;
return this.getString(R.string.version_name) + version;
} catch (Exception e) {
e.printStackTrace();
return this.getString(R.string.can_not_find_version_name);
}
}
2、获取服务器端给的版本号,网上可以找。我这里模拟写死是2.0
3、比对版本号,1.0跟服务器最新的2.0 不等于 执行更新的方法
if (!getVersion().equals(new_version)){//新版本2.0
installApk(this,myfile);
}
4、下载APP。去服务器下载,我这里写死成SD卡的APP路径
private static void installApk(Context mContext, File file) {
Uri fileUri = Uri.fromFile(file);
Intent it = new Intent();
it.setAction(Intent.ACTION_VIEW);
it.setDataAndType(fileUri, "application/vnd.android.package-archive");//数据和类型
it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// 防止打不开应用
mContext.startActivity(it);
}
以上是关于更新APP的主要内容,如果未能解决你的问题,请参考以下文章