android - 使用 DownloadManager 下载视频文件时应用程序在 Android 10 上崩溃

标签 android android-download-manager download-manager

应用程序在设置 setDestinationInExternalPublicDir() 时崩溃

 val videoDir = Environment.getDataDirectory().absolutePath + "/applicationfiles/.tutorial"
downloadRequest.setDestinationInExternalPublicDir(videoDir, videoName)

E/AndroidRuntime: FATAL EXCEPTION: main Process: app.package, PID: 19275 java.lang.IllegalStateException: Not one of standard directories: /data/applicationfiles/.tutorial at android.os.Parcel.createException(Parcel.java:2079) at android.os.Parcel.readException(Parcel.java:2039) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:188) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140) at android.content.ContentProviderProxy.call(ContentProviderNative.java:658) at android.content.ContentProviderClient.call(ContentProviderClient.java:558) at android.content.ContentProviderClient.call(ContentProviderClient.java:546) at android.app.DownloadManager$Request.setDestinationInExternalPublicDir(DownloadManager.java:569) at app.package.startDownloadingFile(ExerciseTutorialPresenter.kt:159) at app.package.downloadVideoFiles(ExerciseTutorialPresenter.kt:142)

最佳答案

setDestinationInExternalPublicDir(dirType: String!, subPath: String!)

对于面向 Android 10 及更高版本的应用程序,此方法的第一个参数 dirType 必须是已知的公共(public)目录之一,例如 Environment.DIRECTORY_DOWNLOADSEnvironment。 DIRECTORY_PICTURESEnvironment.DIRECTORY_MOVIES

关于android - 使用 DownloadManager 下载视频文件时应用程序在 Android 10 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58967238/

相关文章:

android - 如何在 Android 测试中正确模拟 HttpGet 调用

android - 如何从Android中的URL下载文件?

android - android WebView 是否支持带有 download 属性的 <a> 标签?有什么解决方法吗?

android - 为 DownloadManager 的 BroadcastReceiver 设置附加功能

安卓下载管理器 "Impossible to open file"

Android DownloadManager 因无法识别的原因 400 而失败(当文件名包含空格时?)

java - 异步任务没有被取消

android - 创建密码选项 - android

android - 从android中的downloadManager查找下载完成

java - SQLite Android 运行时错误