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 recently READ_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
[ ] I've run the tests to see all new and existing tests pass
[ ] I added automated test coverage as appropriate for this change
[x] Commit is prefixed with (platform) if this change only applies to one platform (e.g. (android))
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)
)