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();
  • @Override
  • 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() {
  • @Override
  • 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);
  • }
  • }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值