Provides access to user's media library.
For managed Expo projects, please follow the installation instructions in the API documentation for the latest stable release.
For bare React Native projects, you must ensure that you have installed and configured the expo
package before continuing.
npx expo install expo-media-library
This package automatically adds the READ_EXTERNAL_STORAGE
and WRITE_EXTERNAL_STORAGE
permissions. They are used when accessing the user's images or videos.
<!-- Added permissions -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
If you'd like to access asset location (latitude and longitude EXIF tags), you have to add ACCESS_MEDIA_LOCATION
permission to the AndroidManifest.xml
:
<!-- Add this to AndroidManifest.xml -->
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />
Starting with Android 10, the concept of scoped storage is introduced. Currently, to make expo-media-library
working with that change, you have to add android:requestLegacyExternalStorage="true"
to AndroidManifest.xml
:
<manifest ... >
<application android:requestLegacyExternalStorage="true" ... >
...
</application>
</manifest>
Add NSPhotoLibraryUsageDescription
, and NSPhotoLibraryAddUsageDescription
keys to your Info.plist
:
<key>NSPhotoLibraryUsageDescription</key>
<string>Give $(PRODUCT_NAME) permission to access your photos</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Give $(PRODUCT_NAME) permission to save photos</string>
Run npx pod-install
after installing the npm package.
Contributions are very welcome! Please refer to guidelines described in the contributing guide.