Pick an image via ActivityStarter and display it with Picasso (without READ
permission) on all Android versions. On Android 11+, the image can then be copied to the Shared folder /Pictures
using its contentUri, granting full access to it via the app. The new (copied) image can then be edited/compressed as desired, without (storage) permissions.
On Android < 11, WRITE_EXTERNAL_STORAGE
permission is of course required for this. Access must then be done via the real path (i.e., not via contentUri).
In this way, READ_EXTERNAL_STORAGE
and READ_MEDIA_IMAGES
(from Android 13 onwards) and SAF can be avoided (on Android 11+). In addition, READ_MEDIA_IMAGES
is no longer permitted without special permission from Google since May 2025. See also my guide Some Basics on Android Storage.
imagePicker.aia (357.7 KB)
Credit to Sunny (@vknow360) for his great Picasso extension.
Tested on Android 16, 13, 8 and 7 (Compnion & APK).
I'm curious if I missed anything, so please test it and give feedback, especially if it works with @TIMAI2's (modified) ImageConverter extension.