apache / cordova-plugin-file

Apache Cordova File Plugin
https://cordova.apache.org/
Apache License 2.0
740 stars 757 forks source link

Android!: allow read-write to app dirs in media dirs and on external sdcards too #597

Open ath0mas opened 8 months ago

ath0mas commented 8 months ago

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 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