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

android运用客户端自动升级

热度:96   发布时间:2016-05-01 13:58:34.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();         @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);       }     }  

?

  相关解决方案