Provides access to user's media library.
API documentation
Installation in managed Expo projects
For managed Expo projects, please follow the installation instructions in the API documentation for the latest stable release.
Installation in bare React Native projects
For bare React Native projects, you must ensure that you have installed and configured the expo
package before continuing.
Add the package to your npm dependencies
npx expo install expo-media-library
Configure for Android
This package automatically adds the READ_EXTERNAL_STORAGE
and WRITE_EXTERNAL_STORAGE
permissions. They are used when accessing the user's images or videos.
<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
:
<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>
Configure for iOS
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.
Contributing
Contributions are very welcome! Please refer to guidelines described in the contributing guide.