ithinkfeed 发表于 2013-2-7 09:09:35

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代表连接的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;                           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);       }   } 
页: [1]
查看完整版本: android应用客户端自动升级