使用Android 系统 DownloadManager下载APK

  1. 下载APK文件需要读写文件的权限,首先要进行权限申请.

  2. 创建DownloadManager 进行下载.

        //创建request对象
         DownloadManager.Request request = new DownloadManager.Request(Uri.parse(baseResponse.getDownload_url()));
         //设置什么网络情况下可以下载
         request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
         //制定下载的文件类型为APK
         request.setMimeType("application/vnd.android.package-archive");
         // 下载过程和下载完成后通知栏有通知消息。
         request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE
                 | DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
         //设置通知栏的标题
         request.setTitle("应用名称");
         //设置通知栏的message
         request.setDescription("正在下载应用名称...");
         //设置漫游状态下是否可以下载
         request.setAllowedOverRoaming(false);
         //表示允许MediaScanner扫描到这个文件,默认不允许。
         request.allowScanningByMediaScanner();
         //设置文件存放目录
         request.setDestinationInExternalFilesDir(this, Environment.DIRECTORY_DOWNLOADS,
                 "kekeshi" + baseResponse.getLatest_version() + ".apk");
         //获取系统服务
         DownloadManager downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
     //        startActivity(new android.content.Intent(DownloadManager.ACTION_VIEW_DOWNLOADS));//启动系统下载界面
         //进行下载
         downloadManager.enqueue(request);
    
  3. 在activity中的onActivityResult对现在完成的回调的监听.

       if (requestCode == REQUEST_INSTALL_PERMISSION) {
         if (Build.VERSION.SDK_INT > 25) {
             if (getPackageManager().canRequestPackageInstalls()) {
                 if (mApkFilePath != null) {//apk保存的路径
                     AppUtils.installApp(mApkFilePath);//安装apk
                 }
             }
         }
     }
    

你可能感兴趣的:(使用Android 系统 DownloadManager下载APK)