Storage Permissions in Android 13

Yusuf I.

The Problem

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.

The Solution

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.

Share on Twitter
Bookmark this page
Ask a questionJoin the discussion

Related Answers

A better experience for your users. An easier life for your developers.

    TwitterGitHubDribbbleLinkedinDiscord
© 2024 • Sentry is a registered Trademark
of Functional Software, Inc.