I write (write, not download, to be precise it is the dump of a SQLite db of my App) a file on the Environment.DIRECTORY_DOWNLOADS directory.
File path = Env
Add your file to downloaded list:
DownloadManager dm = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
dm.addCompletedDownload("db.csv", "my description", false, "text/csv", file.getAbsolutePath(), file.length(), false);
you just created File instance like
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File file = new File(path, "db.csv");
but the file "db.csv" is not created yet. use
file.createNewFile();
to create the file "db.csv" really...
In case anyone wonder how to do this, I found the answer here
To allow the System to display you file in the "Downloads" App, you need to explicitly notify the DownloadManager that a download as been completed by using the method addCompletedDownload()
By using it, the system will allow your Download App to display the file you have created yourself.
Hope it will help.
UPD: This method was deprecated in API level 29.
Try setting the setVisibleInDownloadsUi property.
This allows the download to be visible in the Downloads app.
See Download.Manager
UPD: This method was deprecated in API level 29.
The Downloads app only shows downloads downloaded via DownloadManager
, not all files in the directory.