Luc*_*cci 2 android path android-download-manager
例如,我尝试直接在外部存储目录中下载一个大的 zip 文件
"/mnt/sdcard/Android/data/com.vexdev.audioguida.app/files/data"
Run Code Online (Sandbox Code Playgroud)
我想我应该使用
DownloadManager.Request.setDestinationInExternalPublicDir(path, fileName)
Run Code Online (Sandbox Code Playgroud)
但我不知道如何为其提供在不同 Android 设备上一致的路径。
而且我还试图获取稍后访问该文件的路径,如下所示:
File file = new File(path + fileName);
Run Code Online (Sandbox Code Playgroud)
我在这里问是因为我知道这两种方法需要不同的根路径,因为我试图提供这样的路径:
Application.getAppContext().getExternalFilesDir(Environment.getDataDirectory().getAbsolutePath()).getAbsolutePath();
Run Code Online (Sandbox Code Playgroud)
但 DownloadManager 并未将文件放在 File 构造函数稍后搜索的位置。(实际上它下载到了错误的目录中!)
我正在寻找一种方法将这些文件直接下载到正确的目录中,而无需移动它们。
我想我应该使用 DownloadManager.Request.setDestinationInExternalPublicDir(path, fileName)
不适合您建议的位置。更接近的比赛将是setDestinationInExternalFilesDir()。
但我不知道如何为其提供在不同 Android 设备上一致的路径。
甚至不存在在一台设备内一致的路径,因为不同的帐户将使用不同的路径。例如,您在问题中输入的路径可能会在某些设备上用于某些帐户,但详细信息会有所不同。
我还试图获取稍后访问该文件的路径
文档中对此进行了介绍DownloadManager.Request:
setDestinationInExternalFilesDir()映射getExternalFilesDir()到Context
setDestinationInExternalPublicDir()映射getExternalStoragePublicDirectory()到Environment
我试图提供这样的路径
那不是你使用的方式getExternalFilesDir()。请阅读JavaDocs以了解该方法的参数的有效值。getDataDirectory()不是有效值。
| 归档时间: |
|
| 查看次数: |
2962 次 |
| 最近记录: |