Yes that's right. But why shouldn't it still be possible to access (read / list) files* from the external storage (outside the ASD)?
→ (* btw, on Android 10+ you can only access media files)
However, this is only possible if
DefaultFileScope = Legacy.
Same answer / question as before.
What does this exactly mean?
READ can be requested on any Android version.)
Apparently, it is implicitly assumed that if
DefaultFileScope is NOT set to Legacy, only files in the ASD (or, if applicable, the shared storage) should be accessed. So again: Why shouldn't it also be possible to access the external storage on devices with Android 4.4 and up? (e.g. with
DefaultFileScope = App) The big disadvantage would then be that from Android 4.4 (API 19) onwards,
READ / WRITE permissions can no longer be requested. However, this should be possible.
It is not clear to me where the advantage / sense should be to set
maxSdkVersion = 18. Because
READ permission can be requested on all Android versions (independent of and therefore also with
targetSdkVersion = 30). Of course
WRITE permission does no longer exist on Android 29+ and is therefore ignored on Android 29+ devices.
The only disadvantage (not setting
maxSdk=18) would be that on devices between Android 4.4 (API 19) and Android 5.x (API 22)
READ / WRITE is requested at install-time (which hardly anyone will notice and which was also the case before).
In my opinion, the permissions for all
DefaultFileScopes should be declared like this (btw, also with Companion):
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28" />
This could also omit the
DefaultFileScope property in the designer, which would reduce confusion - especially for inexperienced users.