gpt4 book ai didi

android - 如何使用下载管理器获取下载的文件路径

转载 作者:行者123 更新时间:2023-11-29 15:00:06 30 4
gpt4 key购买 nike

我可以使用下载管理器从服务器下载视频。但是,当我使用以下代码记录路径时。

 String path = Environment.getExternalStoragePublicDirectory(directory).getAbsolutePath() + subpath;
Log.e("PATH", path);

我明白了

12-15 13:29:36.787 22807-22807/com.ezyagric.extension.android E/PATH: /storage/sdcard0/EZYAGRIC/Soil Testing.mp4.

现在这与手机上的路径不同

/storage/sdcard0/Android/data/com.ezyagric.extension.android/files/EZYAGRIC/Crop Insurance.mp4

是什么造成了这种差异,如何才能按原样获取手机中的路径?

最佳答案

在默认下载目录中下载文件的代码 fragment 。

DownloadManager.Request dmr = new DownloadManager.Request(Uri.parse(url));

// If you know file name
String fileName = "filename.xyz";

//Alternative if you don't know filename
String fileName = URLUtil.guessFileName(url, null,MimeTypeMap.getFileExtensionFromUrl(url));

dmr.setTitle(fileName);
dmr.setDescription("Some descrition about file"); //optional
dmr.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);
dmr.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
dmr.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
DownloadManager manager = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(dmr);

注意对于mContext.getSystemService

  • Activity= getSystemService();
  • fragment = getActivity.getSystemService();
  • 适配器= mContext.getSystemService();//在适配器中传递上下文

更新

因为OP想要检查文件是否存在

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), fileName); 
if(file.exists()){//File Exists};

关于android - 如何使用下载管理器获取下载的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47830547/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com