Android版本更新

【Android版本更新】最近在做更新的接口。发现新应用上架的时候都需要软件版权了。希望各位Android开发者注意啦。
不过之前一直没有做安卓这边7.0以及8.0的更新。表示十分的苦恼。只能说我这个小透明来献丑一番啦。
废话不多说,直接上代码。

/* 获取本地软件版本号 */ public static int getLocalVersion(Context ctx) {try { PackageInfo packageInfo = ctx.getApplicationContext() .getPackageManager() .getPackageInfo(ctx.getPackageName(), 0); localVersion = packageInfo.versionCode; DebugLog.d("本软件的版本号。。" + localVersion); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return localVersion; }

先获取当前的版本号,然后再说其他的。要不然咋地去做对比啊?
接下来要去获取后台存储的版本号啦。
获取到后,判断本地的版本号是否小于后台给的版本号,要是小于那就去走更新下载啦,要是相等的话,那就走其他的页面。
public void getUrl() { String http = mSharedPreferences.getString("http", "") + DirectionUrl.UPDATEVERSION; XutilsHttp.getInstance().post(http, null, new XCallBack() {//budui @Override public void onResponse(String result) { DebugLog.d(result); try { JSONObject jsonObject = new JSONObject(result); final String url = jsonObject.getString("downloadUrl"); int code = jsonObject.getInt("versionNumber"); if (code > localVersion) { new QMUIDialog.MessageDialogBuilder(WelActivity.this) .setMessage("检测到新版本,请问是否更新?") .addAction("取消", new QMUIDialogAction.ActionListener() { @Override public void onClick(QMUIDialog dialog, int index) { toM(); dialog.dismiss(); } }) .addAction("确定", new QMUIDialogAction.ActionListener() { @Override public void onClick(QMUIDialog dialog, int index) { dialog.dismiss(); upadata(url); } }) .create(mCurrentDialogStyle).show(); } else { toM(); } } catch (JSONException e) { e.printStackTrace(); }}@Override public void onFail(String errorMsg, String whereRequest) {} }); }

激动人心的时刻来了。因为到了正题,哈哈先说7.0的问题。
1、在manifest注册

2、新建一个xml的文件夹,新建一个file_paths

再说一下8.0的故事啦。
在manifest加上

下面直接安装
public void installApk(File apkFile) { Intent installApkIntent = new Intent(); installApkIntent.setAction(Intent.ACTION_VIEW); installApkIntent.addCategory(Intent.CATEGORY_DEFAULT); installApkIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) { installApkIntent.setDataAndType(FileProvider.getUriForFile(getApplicationContext(), "你的包名.fileprovider", apkFile), "application/vnd.android.package-archive"); installApkIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); } else { installApkIntent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive"); } if (getPackageManager().queryIntentActivities(installApkIntent, 0).size() > 0) { startActivity(installApkIntent); } }

注意“你的包名.fileprovide”这个地方跟manifest的要一致。
好了,好了。分享完毕···

    推荐阅读