当前位置: 代码迷 >> Android >> Android施用客户端自动升级教程
  详细解决方案

Android施用客户端自动升级教程

热度:50   发布时间:2016-05-01 15:50:15.0
Android应用客户端自动升级教程
import java.io.File;  import java.io.FileOutputStream;  import java.io.IOException;  import java.io.InputStream;  import org.apache.http.HttpEntity;  import org.apache.http.HttpResponse;  import org.apache.http.client.ClientProtocolException;  import org.apache.http.client.HttpClient;  import org.apache.http.client.methods.HttpGet;  import org.apache.http.impl.client.DefaultHttpClient;  import android.app.AlertDialog;  import android.app.Dialog;  import android.app.ProgressDialog;  import android.content.DialogInterface;  import android.content.Intent;  import android.net.Uri;  import android.os.Bundle;  import android.os.Environment;  import android.os.Handler;  public class Update extends BaseActivity {  public ProgressDialog pBar;  private Handler handler = new Handler();[email protected]  protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.update);  Dialog dialog = new AlertDialog.Builder(Update.this).setTitle("系统更新")  .setMessage("发现新版本,请更新!")// 设置内容  .setPositiveButton("确定",// 设置确定按钮  new DialogInterface.OnClickListener() {[email protected]  public void onClick(DialogInterface dialog,  int which) {  pBar = new ProgressDialog(Update.this);  pBar.setTitle("正在下载");  pBar.setMessage("请稍候...");  pBar  .setProgressStyle(ProgressDialog.STYLE_SPINNER);  downFile("http://url:8765/OA.apk");  }  }).setNegativeButton("取消",  new DialogInterface.OnClickListener() {  public void onClick(DialogInterface dialog,int whichButton) {  // 点击"取消"按钮之后退出程序  }  }).create();// 创建  // 显示对话框  dialog.show();  }  void downFile(final String url) {  pBar.show();  new Thread() {  public void run() {  HttpClient client = new DefaultHttpClient();  // params[0]代表连接的url  HttpGet get = new HttpGet(url);  HttpResponse response;  try {  response = client.execute(get);  HttpEntity entity = response.getEntity();  long length = entity.getContentLength();  InputStream is = entity.getContent();  FileOutputStream fileOutputStream = null;  if (is != null) {  File file = new File(Environment  .getExternalStorageDirectory(), "OA.apk");  fileOutputStream = new FileOutputStream(file);  byte[] buf = new byte[1024];  int ch = -1;  int count = 0;  while ((ch = is.read(buf)) != -1) {  // baos.write(buf, 0, ch);  fileOutputStream.write(buf, 0, ch);  count += ch;  if (length > 0) {  }  }  }  fileOutputStream.flush();  if (fileOutputStream != null) {  fileOutputStream.close();  }  down();  } catch (ClientProtocolException e) {  // TODO Auto-generated catch block  e.printStackTrace();  } catch (IOException e) {  // TODO Auto-generated catch block  e.printStackTrace();  }  }  }.start();  }  void down() {  handler.post(new Runnable() {  public void run() {  pBar.cancel();  update();  }  });  }  void update() {  Intent intent = new Intent(Intent.ACTION_VIEW);  intent.setDataAndType(Uri.fromFile(new File("/sdcard/OA.apk")),  "application/vnd.android.package-archive");  startActivity(intent);  }  }


转载:http://www.inandroid.cn/bbs/thread-2976-1-1.html
  相关解决方案