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?
(Of course 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" />
Conclusion:
This could also omit the DefaultFileScope
property in the designer, which would reduce confusion - especially for inexperienced users.