Android!: allow read-write to app dirs in media dirs and on external sdcards too #597
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Platforms affected
Android
Motivation and Context
Reading and writing to app dirs onto external SD cards works fine without any permission.
Same was done for external media directories, on primary non-removable storage, and others on removable ones.
Description
Reading and writing to app dirs onto external SD cards is currently asking for permissions,
*_EXTERNAL_STORAGE
or more recentlyREAD_MEDIA_*
.The SDK 33 permission change made me look more into this, as asking for MEDIA related permissions seems strange.
With this PR, app dirs on external SD cards are excluded from this requirement ; even if browsing among directories, some of which are still outside of the allowed list, continue to ask for sort of unrelated permissions most of the time I think. While it may indeed be useful if the target files really are "media".
Testing
Built a testApp with targetSDK 33, installed on emulators API 28, 29, 30, 32, and 33,
Then I checked both READ and WRITE inside app dirs of internal, external, and external sd cards storage paths: operations run fine, and without asking for any permission.
Similar operations but for files outside of the allowed list still require permissions.
Checklist
(platform)
if this change only applies to one platform (e.g.(android)
)