android_apk的在线安装,除了要设计Android 客户端的代码外,还要搭建服务器的代码,仿真实现中Android软件的在线升级。
Android 客户端的代码截图如下。
MainActivity
package com.example.f03_packmanager;
import java.io.File;
import java.util.concurrent.ExecutionException;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
// 先在文件清单添加获取网络访问权限和准许读写sdcard的permission;
private Button button;
private ProgressDialog dialog;// 查询版本更新信息的进度对话框
private String messagePath = "http://111.0.124.108:8080/http/servlet/Install";// 获取版本更新的URL
private Message message;
private PackUtiles packUtiles;// 获取当前版本信息的封装类
private AlertDialog.Builder builder;// 下载更新的对话框
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dialog = new ProgressDialog(MainActivity.this);
dialog.setTitle("提示");
dialog.setMessage("download.....");
builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("下载更新");
builder.setMessage("是否下载最新的版本?");
builder.setCancelable(false);// 设置不能随意关闭提示下载更新的对话框
button = (Button) this.findViewById(R.id.button1);
packUtiles = new PackUtiles(MainActivity.this);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
message = new getAPKUrl().execute(messagePath)
.get();
boolean flag = packUtiles.update(packUtiles.getVersion(),
message.getVsersionCode());
Log.i("tag", "------->" + flag);
if (flag) {
builder.setPositiveButton(&