zoukankan      html  css  js  c++  java
  • Android 实现apk文件下载并自动安装

    //下载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);
             }
  • 相关阅读:
    leetcode-383-Ransom Note(以空间换时间)
    AtCoder
    AtCoder
    Hadoop序列化案例实操
    Java实现MapReduce Wordcount案例
    HDFS常用API操作 和 HDFS的I/O流操作
    HBase常用的JAVA API操作
    ZooKeeper之服务器动态上下线案例
    机器学习(6)——逻辑回归
    机器学习(5)——多项式回归与模型泛化
  • 原文地址:https://www.cnblogs.com/wangsx/p/2440721.html
Copyright © 2011-2022 走看看