kunfei 4 ani în urmă
părinte
comite
09aa8c364b
1 a modificat fișierele cu 19 adăugiri și 12 ștergeri
  1. 19 12
      app/src/main/java/io/legado/app/service/DownloadService.kt

+ 19 - 12
app/src/main/java/io/legado/app/service/DownloadService.kt

@@ -83,18 +83,25 @@ class DownloadService : BaseService() {
             toastOnUi("已在下载列表")
             return
         }
-        // 指定下载地址
-        val request = DownloadManager.Request(Uri.parse(url))
-        // 设置通知
-        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN)
-        // 设置下载文件保存的路径和文件名
-        request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName)
-        // 添加一个下载任务
-        val downloadId = downloadManager.enqueue(request)
-        downloads[downloadId] = Pair(url, fileName)
-        queryState()
-        if (upStateJob == null) {
-            checkDownloadState()
+        kotlin.runCatching {
+            // 指定下载地址
+            val request = DownloadManager.Request(Uri.parse(url))
+            // 设置通知
+            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN)
+            // 设置下载文件保存的路径和文件名
+            request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName)
+            // 添加一个下载任务
+            val downloadId = downloadManager.enqueue(request)
+            downloads[downloadId] = Pair(url, fileName)
+            queryState()
+            if (upStateJob == null) {
+                checkDownloadState()
+            }
+        }.onFailure {
+            when (it) {
+                is SecurityException -> toastOnUi("下载出错,没有存储权限")
+                else -> toastOnUi("下载出错,${it.localizedMessage}")
+            }
         }
     }