I just want to give some up-to-date information on the topic, because I searched the web and indeed after Android 11, things are changed (I also remember having troubles when writing native for Android).
The following methods from the package `path_provider` give you:
var directory = await getDownloadsDirectory()
// -> /storage/emulated/0/Android/data/com.example.my_app/files/downloads
var directory = await getExternalStorageDirectory();
// -> /storage/emulated/0/Android/data/com.example.my_app/files
var directory = await getApplicationDocumentsDirectory();
// -> /data/user/0/com.example.my_app/app_flutter
So all these locations are on the internal storage and are application specific.
The only way to get the "real" Download folders is like the post above suggests:
Directory generalDownloadDir = Directory('/storage/emulated/0/Download');
This is the only workaround so far. Even in native I remember I was not able to find a proper API method or something so you have to go with custom path. Good thing is that (like in my case) you can chose another folder e.g. `/storage/emulated/0/Pictures/MyApp` and it will work fine as wlong as you have the required permission (MANAGE_EXTERNAL_STORAGE) of course.
PS. I have not tested the code in iOS.