版本控制
版本控制
2023-09-27 14:27:47 时间
package com.example.liuan.nahaoba;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import java.io.File;
import butterknife.Bind;
import butterknife.ButterKnife;
public class SplashActivity extends AppCompatActivity {
@Bind(R.id.version_code)
TextView versionCode;
@Bind(R.id.version_name)
TextView versionName;
@Bind(R.id.activity_main2)
RelativeLayout activityMain2;
private boolean isUpdate=true;
private AlertDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
ButterKnife.bind(this);
//版本名字的初始化
versionName.setText(getVersionName());
versionCode.setText(getVersionCode()+"");
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if(isUpdate){
checkVersion();
} else{
//无论成功或者失败 都要跳转到主页面
enterHome();
}
}
},2000);
Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW");
// intent.setAction(Intent.ACTION_VIEW);
intent.addCategory("android.intent.category.DEFAULT");
// intent.addCategory(Intent.CATEGORY_DEFAULT);
Uri uri = Uri.fromFile(new File("apk路径"));// 要安装数据的uri
intent.setDataAndType(uri, "application/vnd.android.package-archive");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// 跳转安装页面
startActivityForResult(intent, 11);
}
private void enterHome() {
}
private void checkVersion() {
//联网获取数据 看看是否有新版本
int 服务器版本=2;
if(getVersionCode()<服务器版本){
showUpdateDialog();
}else{
enterHome();}
}
private void showUpdateDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("版本更新提示");
builder.setMessage("是否要更新成新的版本号呢");
// 让取消不可以用 垃圾软件很多在使用
builder.setCancelable(false);
builder.setPositiveButton("更新", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(SplashActivity.this, "下载app的逻辑", Toast.LENGTH_SHORT).show();
downLoadApk();
}
});
builder.setNegativeButton("不用了", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
enterHome();
}
});
dialog = builder.create();
dialog.show();
}
private void downLoadApk() {
if (!Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
Toast.makeText(getApplicationContext(), "sd卡异常", Toast.LENGTH_SHORT).show();
// 进主页面
enterHome();
return;
}
}
private String getVersionName() {
//包管理器 可以获取清单文件信息
PackageManager packageManager = getPackageManager();
try {
PackageInfo packageInfo = packageManager.getPackageInfo(getPackageName(), 0);
return packageInfo.versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
//防止空指针异常
return "";
}
private int getVersionCode() {
//包管理器 可以获取清单文件信息
PackageManager packageManager = getPackageManager();
try {
PackageInfo packageInfo = packageManager.getPackageInfo(getPackageName(), 0);
return packageInfo.versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
//防止空指针异常
return 0;
}
}