In Android 13, Google revamped storage permission requests for better control over accessing specific media types. The change was made to give users with privacy concerns more control over what they want to share with any particular app.
Previously, we needed to add these permissions to the AndroidManifest.xml
file to access any media type:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
These permissions no longer affect devices running Android 13 and above.
If you target API 33 (Android 13) or higher, you must add these permissions to AndroidManifest.xml
:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/> <uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
Only add the ones that you need and request permissions in the code. For example:
requestPermissions( arrayOf( Manifest.permission.READ_MEDIA_AUDIO, Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.READ_MEDIA_VIDEO, ), REQUEST_CODE )
For more information about accessing media files please visit https://developer.android.com/training/data-storage/shared/media#storage-permission.
Loved by over 4 million developers and more than 90,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.