Android 下载一个apk文件以及打开这个apk文件

下载一个网络文件的函数如下  

Java代码  

  1. public static File downLoadFile(String httpUrl) {   

  2.             // TODO Auto-generated method stub   

  3.             final String fileName = "nq.apk";   

  4.             File tmpFile = new File("//sdcard");   

  5.             if (!tmpFile.exists()) {   

  6.                     tmpFile.mkdir();   

  7.             }   

  8.             final File file = new File("//sdcard//" + fileName);   

  9.             try {   

  10.                     URL url = new URL(httpUrl);   

  11.                     try {   

  12.                             HttpURLConnection conn = (HttpURLConnection) url   

  13.                                             .openConnection();   

  14.                             InputStream is = conn.getInputStream();   

  15.                             FileOutputStream fos = new FileOutputStream(file);   

  16.                             byte[] buf = new byte[256];   

  17.                             conn.connect();   

  18.                             double count = 0;   

  19.                             if (conn.getResponseCode() >= 400) {   

  20. //                                  Toast.makeText(DownFile.this, "连接超时", Toast.LENGTH_SHORT)   

  21. //                                                  .show();   

  22.                                 Log.i("time","time exceed");   

  23.                             } else {   

  24.                                     while (count <= 100) {   

  25.                                             if (is != null) {   

  26.                                                     int numRead = is.read(buf);   

  27.                                                     if (numRead <= 0) {   

  28.                                                             break;   

  29.                                                     } else {   

  30.                                                             fos.write(buf, 0, numRead);   

  31.                                                     }   

  32.                                             } else {   

  33.                                                     break;   

  34.                                             }   

  35.                                     }   

  36.                             }   

  37.                             conn.disconnect();   

  38.                             fos.close();   

  39.                             is.close();   

  40.                     } catch (IOException e) {   

  41.                             // TODO Auto-generated catch block   

  42.                             e.printStackTrace();   

  43.                     }   

  44.             } catch (MalformedURLException e) {   

  45.                     // TODO Auto-generated catch block   

  46.                     e.printStackTrace();   

  47.             }   

  48.             return file;   

  49.     }    




   如果是一个apk文件,打开并且安装的函数为 

Java代码  

  1. private void openFile(File file) {   

  2.         // TODO Auto-generated method stub   

  3.         Log.e("OpenFile", file.getName());   

  4.         Intent intent = new Intent();   

  5.         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   

  6.         intent.setAction(android.content.Intent.ACTION_VIEW);   

  7.         intent.setDataAndType(Uri.fromFile(file),   

  8.                         "application/vnd.android.package-archive");   

  9.         startActivity(intent);   

  10. }    


你可能感兴趣的:(android下载文件,打开apk)