我将使用
我读到过当写入外部目录时
更新: 在 Android 4.4 及以上版本中,规则有些不同: - 对于以 getExternalFilesDir() 和 getExternalCacheDir() 为根的目录树,您不需要权限即可读取或写入 - 要写入外部存储的任何其他位置,您需要 WRITE_EXTERNAL_STORAGE 权限 - 要从外部存储的任何其他位置读取,您需要已有 WRITE_EXTERNAL_STORAGE 权限,或者需要 READ_EXTERNAL_STORAGE 权限。
下载管理器
来下载文件并将其保存到外部存储器,方法如下:
DownloadManager.Request req = new DownloadManager.Request(uri);
req.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
.setDestinationInExternalFilesDir(TextReaderActivity.this, null, "podcasts/" + Integer.toString(article.id) + PODCAST_EXTENSION);
我遇到了以下异常:
Exception: need WRITE_EXTERNAL_STORAGE permission to use DESTINATION_FILE_URI: uid 10052 does not have android.permission.WRITE_EXTERNAL_STORAGE.
我读到过当写入外部目录时
maxSdkVersion > 18
不需要请求 WRITE_EXTERNAL_STORAGE
权限,那么为什么在使用 DownloadManager
时还需要呢?更新: 在 Android 4.4 及以上版本中,规则有些不同: - 对于以 getExternalFilesDir() 和 getExternalCacheDir() 为根的目录树,您不需要权限即可读取或写入 - 要写入外部存储的任何其他位置,您需要 WRITE_EXTERNAL_STORAGE 权限 - 要从外部存储的任何其他位置读取,您需要已有 WRITE_EXTERNAL_STORAGE 权限,或者需要 READ_EXTERNAL_STORAGE 权限。