Android 实现apk文件下载并自动安装

来源:互联网 发布:量化交易编程 编辑:程序博客网 时间:2024/05/16 08:42
//下载apk程序代码
 protected File downLoadFile(String httpUrl) {
                 // TODO Auto-generated method stub
                 final String fileName = "updata.apk";
                 File tmpFile = new File("/sdcard/update");
                 if (!tmpFile.exists()) {
                         tmpFile.mkdir();
                 }
                 final File file = new File("/sdcard/update/" + fileName);
 
                try {
                         URL url = new URL(httpUrl);
                         try {
                                 HttpURLConnection conn = (HttpURLConnection) url
                                                 .openConnection();
                                 InputStream is = conn.getInputStream();
                                 FileOutputStream fos = new FileOutputStream(file);
                                 byte[] buf = new byte[256];
                                 conn.connect();
                                 double count = 0;
                                 if (conn.getResponseCode() >= 400) {
                                         Toast.makeText(Main.this, "连接超时", Toast.LENGTH_SHORT)
                                                         .show();
                                 } else {
                                         while (count <= 100) {
                                                 if (is != null) {
                                                         int numRead = is.read(buf);
                                                         if (numRead <= 0) {
                                                                 break;
                                                         } else {
                                                                 fos.write(buf, 0, numRead);
                                                         }
 
                                                } else {
                                                         break;
                                                 }
 
                                        }
                                 }
 
                                conn.disconnect();
                                 fos.close();
                                 is.close();
                         } catch (IOException e) {
                                 // TODO Auto-generated catch block
 
                                e.printStackTrace();
                         }
                 } catch (MalformedURLException e) {
                         // TODO Auto-generated catch block
 
                        e.printStackTrace();
                 }
 
                return file;
         }
 //打开APK程序代码
 
private void openFile(File file) {
                 // TODO Auto-generated method stub
                 Log.e("OpenFile", file.getName());
                 Intent intent = new Intent();
                 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                 intent.setAction(android.content.Intent.ACTION_VIEW);
                 intent.setDataAndType(Uri.fromFile(file),
                                 "application/vnd.android.package-archive");
                 startActivity(intent);
         }
原创粉丝点击