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.