阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 955|回复: 0

[转帖] Android自动更新代码

[复制链接]
  • TA的每日心情
    开心
    2012-3-7 10:15
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2012-1-12 09:36:58 | 显示全部楼层 |阅读模式
    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.DialogInte**ce;  
    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 DialogInte**ce.OnClickListener() {  
      
                                @Override  
                                public void onClick(DialogInte**ce 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 DialogInte**ce.OnClickListener() {  
                                public void onClick(DialogInte**ce 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);  
        }  
      
    }
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表