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

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

view plaincopy to clipboardprint?
public static File downLoadFile(String httpUrl) { 
            // TODO Auto-generated method stub 
            final String fileName = "nq.apk"; 
            File tmpFile = new File("//sdcard"); 
            if (!tmpFile.exists()) { 
                    tmpFile.mkdir(); 
            } 
            final File file = new File("//sdcard//" + 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(DownFile.this, "连接超时", Toast.LENGTH_SHORT) 
//                                                  .show(); 
                                Log.i("time","time exceed"); 
                            } 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文件,打开并且安装的函数为

view plaincopy to clipboardprint?
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); 



这样就可以实现一个apk文件的下载和安装,后续有时间给大家介绍下静默安装和卸载的实现

本文地址http://blog.csdn.net/Zengyangtech/archive/2011/03/15/6251377.aspx

转载请注明

你可能感兴趣的:(android,.net,Blog)