Android自动更新APK是指在Android应用程序更新时,可以自动下载并安装最新版本的APK。在.xml中添加权限:
Android自动更新APK是指在Android应用程序更新时,可以自动下载并安装最新版本的APK。
1. 在AndroidManifest.xml中添加权限:
2. 在Activity中添加代码:
// 获取服务器上最新版本号
int versionCode = getVersionCode();
if (versionCode > getLocalVersionCode()) {
// 有新版本,弹出对话框提示用户更新
showUpdateDialog();
}
// 获取服务器上最新版本号
private int getVersionCode() {
int versionCode = 0;
try {
// 连接服务器,获取版本号
URL url = new URL("http://www.example.com/version.json");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setRequestMethod("GET");
InputStream is = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
// 解析json数据,获取版本号
JSONObject jsonObject = new JSONObject(response.toString());
versionCode = jsonObject.getInt("versionCode");
} catch (Exception e) {
e.printStackTrace();
}
return versionCode;
}
// 获取本地版本号
private int getLocalVersionCode() {
PackageManager packageManager = getPackageManager();
PackageInfo packageInfo;
int versionCode = 0;
try {
packageInfo = packageManager.getPackageInfo(getPackageName(), 0);
versionCode = packageInfo.versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return versionCode;
}
// 显示更新对话框
private void showUpdateDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("发现新版本");
builder.setMessage("请更新到最新版本");
builder.setPositiveButton("更新", new DialogIntece.OnClickListener() {
@Override
public void onClick(DialogIntece dialog, int which) {
downloadApk();
}
});
builder.setNegativeButton("取消", new DialogIntece.OnClickListener() {
@Override
public void onClick(DialogIntece dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
// 下载新版本apk
private void downloadApk() {
// 连接服务器,获取apk文件
URL url = new URL("http://www.example.com/app.apk");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setRequestMethod("GET");
InputStream is = connection
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(35条)