从互联网“Android Studio”下载 Zip 文件

问题描述 投票:0回答:1

我希望你一切都好,感谢你阅读本文。 几天前我开始在 Android Studio 中进行开发,我试图从互联网上下载一个 zip 文件,经过几个小时的研究后我还没有能够做到这一点。 我从 DownloadManager 收到有关文件目标路径的错误,您可以在下面查看详细信息。

以下是下载文件方法的代码:

//The method is called by a foreground service, I tried to call it inside the MainActivity, but it doesn't work either
    private static void DownloadFile(String fileUrl, Service service){
        Log.w("Utility", "martinPrank, DownloadFile invoked from service, fileUrl: "+fileUrl);
        DownloadManager.Request request = new DownloadManager.Request(Uri.parse(fileUrl));
        request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);
        request.setTitle("Download");
        request.setDescription("Download file di sistema in corso...");

        String[] urlWordArray = fileUrl.split("/");
        String fileName = urlWordArray[urlWordArray.length-1];

        request.allowScanningByMediaScanner();
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE);
        request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);

        DownloadManager downloadManager = (DownloadManager) service.getSystemService(Context.DOWNLOAD_SERVICE);
        downloadManager.enqueue(request);
        Log.w("Utility", "martinPrank, The download of the file should start!");
    }

这是Android Studio的Logcat:

2023-12-12 19:36:48.363  1998-2117  Utility                 com.patrickcreations.myapplication   W  martinPrank, DownloadFile invoked from service, fileUrl: https://www.trentinotrasporti.it/opendata/google_transit_urbano_tte.zip
2023-12-12 19:36:48.370  1463-1679  ActivityManager         pid-1463                             I  Changes in 10074 10 to 3, 0 to 8
2023-12-12 19:36:48.425  5835-7230  DownloadManager         pid-5835                             W  Path appears to be invalid: /storage/emulated/0/Download/google_transit_urbano_tte.zip
2023-12-12 19:36:48.477  1463-1679  ConnectivityManager     pid-1463                             D  StackLog: [android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:4191)] [android.net.ConnectivityManager.registerDefaultNetworkCallbackForUid(ConnectivityManager.java:4755)] [com.android.server.job.controllers.ConnectivityController.registerPendingUidCallbacksLocked(ConnectivityController.java:856)] [com.android.server.job.controllers.ConnectivityController.maybeRegisterDefaultNetworkCallbackLocked(ConnectivityController.java:830)] [com.android.server.job.controllers.ConnectivityController.updateConstraintsSatisfied(ConnectivityController.java:1045)] [com.android.server.job.controllers.ConnectivityController.maybeStartTrackingJobLocked(ConnectivityController.java:263)] [com.android.server.job.JobSchedulerService.startTrackingJobLocked(JobSchedulerService.java:1754)] [com.android.server.job.JobSchedulerService.scheduleAsPackage(JobSchedulerService.java:1233)] [com.android.server.job.JobSchedulerService$JobSchedulerStub.scheduleAsPackage(JobSchedulerService.java:3167)] [android.app.job.IJobScheduler$Stub.onTransact(IJobScheduler.java:181)]
2023-12-12 19:36:48.477  1463-1679  ConnectivityService     pid-1463                             D  requestNetwork for uid/pid:1000/1463 asUid: 11154 activeRequest: null callbackRequest: 4061 [NetworkRequest [ REQUEST id=4062, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VCN_MANAGED Uid: 11154 RequestorUid: 1000 RequestorPkg: android UnderlyingNetworks: Null] ]] callback flags: 0 order: 2147483647
2023-12-12 19:36:48.478  1463-1757  ConnectivityService     pid-1463                             D     accepting network in place of null
2023-12-12 19:36:48.480  1998-2117  Utility                 com.patrickcreations.myapplication   W  martinPrank, The download of the file should start!

更新:我从 Logcat 中看到一个新错误:

2023-12-12 19:36:48.726  5835-2154  DownloadManager         pid-5835                             W  [1414] Stop requested with status HTTP_DATA_ERROR: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
2023-12-12 19:36:48.727  5835-2154  DownloadManager         pid-5835                             D  [1414] Finished with status WAITING_TO_RETRY
2023-12-12 19:36:48.727  5835-2154  DownloadManager         pid-5835                             V  MIME Type = null

问题实际上是网站的信任锚,我尝试从另一个网站下载pdf,它有效!

所以问题出在我试图从右侧获取 zip 的服务器

java android download android-download-manager download-manager
1个回答
0
投票

也可以尝试添加 mime-type 并且它的 URL 需要任何标头进行授权,也尝试添加这些标头 确保完整名称和扩展名

© www.soinside.com 2019 - 2024. All rights reserved.