# PickVisualMedia

Artifact: [androidx.photopicker:photopicker-activity](https://developer.android.com/jetpack/androidx/releases/photopicker) [View Source](https://cs.android.com/search?q=file:androidx/photopicker/activity/PickVisualMedia.kt+class:androidx.photopicker.activity.PickVisualMedia) Added in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/photopicker#1.0.0-alpha03)

*** ** * ** ***


```
public class PickVisualMedia extends ActivityResultContract<@NonNull PickVisualMediaRequest, Uri>
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.activity.result.contract.ActivityResultContract](https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract)\<@[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull) [PickVisualMediaRequest](https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMediaRequest), [Uri](https://developer.android.com/reference/android/net/Uri.html)\> ||
|   | ↳ | [androidx.photopicker.activity.PickVisualMedia](https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia) |

*** ** * ** ***

An `https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract` to use the [Photo Picker](https://developer.android.com/training/data-storage/shared/photopicker) to select a single image, video, or other type of visual media.

This contract always prefers the system framework provided Photo Picker available via `https://developer.android.com/reference/android/provider/MediaStore.html#ACTION_PICK_IMAGES` when it is available, but will also provide a fallback on devices that it is not available to provide a consistent API surface across all Android API 19 or higher devices.

The priority order for handling the Photo Picker is:

1. The system framework provided `https://developer.android.com/reference/android/provider/MediaStore.html#ACTION_PICK_IMAGES`.

- An OEM can provide a system app that implements `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` to provide a consistent Photo Picker to older devices.

- `https://developer.android.com/reference/android/content/Intent.html#ACTION_OPEN_DOCUMENT` is used as a final fallback on all Android API 19 or higher devices.

The input is a `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMediaRequest`.

The output is a `Uri` when the user has selected a media or `null` when the user hasn't selected any item. Keep in mind that `Uri` returned by the photo picker isn't writable.

This can be extended to override `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#createIntent(android.content.Context,androidx.photopicker.activity.PickVisualMediaRequest)` if you wish to pass additional extras to the Intent created by `super.createIntent()`.

## Summary

| ### Nested types |
|---|
| `public abstract class https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.DefaultTab` Represents filter input type accepted by the photo picker. |
| `public static class https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.DefaultTab.AlbumsTab extends https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.DefaultTab` `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.DefaultTab` object used to open the picker in Albums tab. |
| `public static class https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.DefaultTab.PhotosTab extends https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.DefaultTab` `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.DefaultTab` object used to open the picker in Photos tab (also the default if no value is provided). |
| `public static class https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.ImageAndVideo implements https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.VisualMediaType` `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.VisualMediaType` object used to filter images and video when using the photo picker. |
| `public static class https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.ImageOnly implements https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.VisualMediaType` `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.VisualMediaType` object used to filter images only when using the photo picker. |
| `public final class https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.MediaCapabilities` Represents the media capabilities of an application. |
| `public final class https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.MediaCapabilities.Builder` A builder for constructing `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.MediaCapabilities` instances. |
| `public final class https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.SingleMimeType implements https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.VisualMediaType` `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.VisualMediaType` class used to filter a single mime type only when using the photo picker. |
| `public static class https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.VideoOnly implements https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.VisualMediaType` `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.VisualMediaType` object used to filter video only when using the photo picker. |
| `public sealed interface https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia.VisualMediaType` Represents filter input type accepted by the photo picker. |

| ### Constants |
|---|---|
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` In cases where the system framework provided `https://developer.android.com/reference/android/provider/MediaStore.html#ACTION_PICK_IMAGES` Photo Picker cannot be implemented, OEMs or system apps can provide a consistent Photo Picker experience to those devices by creating an Activity that handles this action. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_ACCENT_COLOR()` Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia` and `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` that indicates the preferred accent color of the picker. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM()` Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia` and `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` to indicate the predefined album to highlight in the picker. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_SEARCH_RESULTS()` Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia` and `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` that indicates the search results to highlight in the picker. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_IN_ORDER()` Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` that indicates allowing the user to control the order in which images are returned to the calling app. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_LAUNCH_TAB()` Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia` and `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` that indicates the preferred default tab of the picker. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX()` Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` that indicates that maximum number of photos the user should select. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_REQUEST_LOCATION_METADATA_ACCESS()` Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia` and `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` that indicates whether to request location metadata access from the picker. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS()` |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS_ASPECT_RATIO()` Key within the `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS()` bundle specifying the thumbnail aspect ratio. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID()` Bundle key used in system fallback album highlight extras to specify the highlight album. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_SEARCH_TEXT_QUERY()` Bundle key used in system fallback search results highlight extras to specify the text query. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE()` Bundle key used in system fallback highlight extras to specify the value of the highlight type. |
| `static final int` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#SYSTEM_FALLBACK_PICK_IMAGES_ASPECT_RATIO_PORTRAIT_9_16() = 1` Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS_ASPECT_RATIO()` specifying a portrait 9:16 aspect ratio thumbnail sizing within the media grid. |
| `static final int` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#SYSTEM_FALLBACK_PICK_IMAGES_ASPECT_RATIO_SQUARE_1_1() = 0` Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS_ASPECT_RATIO()` specifying a square 1:1 aspect ratio thumbnail sizing within the media grid. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_CAMERA()` Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID()` specifying the Camera album. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_DOWNLOADS()` Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID()` specifying the Downloads album. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_FAVORITES()` Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID()` specifying the Favorites album. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_SCREENSHOTS()` Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID()` specifying the Screenshots album. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_VIDEOS()` Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID()` specifying the Videos album. |
| `static final int` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE_COLLAPSED() = 0` Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE()` specifying a collapsed highlight section. |
| `static final int` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE_EXPANDED() = 1` Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE()` specifying an expanded highlight grid. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#PickVisualMedia()()` |

| ### Public methods |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Intent.html` | `@https://developer.android.com/reference/androidx/annotation/CallSuper https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#createIntent(android.content.Context,androidx.photopicker.activity.PickVisualMediaRequest)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMediaRequest input )` Create an intent that can be used for `https://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)`. |
| `final https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract.SynchronousResult<https://developer.android.com/reference/android/net/Uri.html>` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#getSynchronousResult(android.content.Context,androidx.photopicker.activity.PickVisualMediaRequest)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMediaRequest input )` An optional method you can implement that can be used to potentially provide a result in lieu of starting an activity. |
| `static final boolean` | `[isPhotoPickerAvailable](https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#isPhotoPickerAvailable())()` **This method is deprecated.** This method is deprecated in favor of isPhotoPickerAvailable(context) to support the picker provided by updatable system apps |
| `static final boolean` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#isPhotoPickerAvailable(android.content.Context)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context)` Check if the current device has support for the photo picker by checking the running Android version, the SDK extension version or the picker provided by a system app implementing `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()`. |
| `final https://developer.android.com/reference/android/net/Uri.html` | `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#parseResult(kotlin.Int,android.content.Intent)(int resultCode, https://developer.android.com/reference/android/content/Intent.html intent)` Convert result obtained from `https://developer.android.com/reference/android/app/Activity.html#onActivityResult(int, int, android.content.Intent)` to `https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract`. |

## Constants

### ACTION_SYSTEM_FALLBACK_PICK_IMAGES

```
public static final @NonNull String ACTION_SYSTEM_FALLBACK_PICK_IMAGES
```

In cases where the system framework provided `https://developer.android.com/reference/android/provider/MediaStore.html#ACTION_PICK_IMAGES` Photo Picker cannot be implemented, OEMs or system apps can provide a consistent Photo Picker experience to those devices by creating an Activity that handles this action. This app must also include `https://developer.android.com/reference/android/content/Intent.html#CATEGORY_DEFAULT` in the activity's intent filter.

Only system apps can implement this action - any non-system apps will be ignored when searching for the activities that handle this Intent.

Note: this should not be used directly, instead relying on the selection logic done by `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#createIntent(android.content.Context,androidx.photopicker.activity.PickVisualMediaRequest)` to create the correct Intent for the current device.

### EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_ACCENT_COLOR

```
public static final @NonNull String EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_ACCENT_COLOR
```

Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia` and `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` that indicates the preferred accent color of the picker.

If this extra is not present, the default accent color of the picker will be used.

### EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM

```
public static final @NonNull String EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM
```

Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia` and `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` to indicate the predefined album to highlight in the picker.

### EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_SEARCH_RESULTS

```
public static final @NonNull String EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_SEARCH_RESULTS
```

Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia` and `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` that indicates the search results to highlight in the picker.

### EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_IN_ORDER

```
public static final @NonNull String EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_IN_ORDER
```

Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` that indicates allowing the user to control the order in which images are returned to the calling app.

### EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_LAUNCH_TAB

```
public static final @NonNull String EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_LAUNCH_TAB
```

Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia` and `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` that indicates the preferred default tab of the picker.

If this extra is not present, the default tab of the picker will be used.

### EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX

```
public static final @NonNull String EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
```

Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` that indicates that maximum number of photos the user should select.

If this extra is not present, only a single photo should be selectable.

If this extra is present but equal to `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/-companion/-m-a-x_-v-a-l-u-e.html`, then no limit should be enforced.

### EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_REQUEST_LOCATION_METADATA_ACCESS

```
public static final @NonNull String EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_REQUEST_LOCATION_METADATA_ACCESS
```

Extra that will be sent by `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia` and `https://developer.android.com/reference/androidx/photopicker/activity/PickMultipleVisualMedia` to an Activity that handles `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()` that indicates whether to request location metadata access from the picker.

If this extra is not present, location metadata should be redacted by default.

### EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS

```
public static final @NonNull String EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS
```

### EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS_ASPECT_RATIO

```
public static final @NonNull String EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS_ASPECT_RATIO
```

Key within the `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS()` bundle specifying the thumbnail aspect ratio.

Expected value is an integer: `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#SYSTEM_FALLBACK_PICK_IMAGES_ASPECT_RATIO_SQUARE_1_1()` or `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#SYSTEM_FALLBACK_PICK_IMAGES_ASPECT_RATIO_PORTRAIT_9_16()`.

### KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID

```
public static final @NonNull String KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID
```

Bundle key used in system fallback album highlight extras to specify the highlight album.

### KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_SEARCH_TEXT_QUERY

```
public static final @NonNull String KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_SEARCH_TEXT_QUERY
```

Bundle key used in system fallback search results highlight extras to specify the text query.

### KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE

```
public static final @NonNull String KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE
```

Bundle key used in system fallback highlight extras to specify the value of the highlight type.

### SYSTEM_FALLBACK_PICK_IMAGES_ASPECT_RATIO_PORTRAIT_9_16

```
public static final int SYSTEM_FALLBACK_PICK_IMAGES_ASPECT_RATIO_PORTRAIT_9_16 = 1
```

Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS_ASPECT_RATIO()` specifying a portrait 9:16 aspect ratio thumbnail sizing within the media grid.

### SYSTEM_FALLBACK_PICK_IMAGES_ASPECT_RATIO_SQUARE_1_1

```
public static final int SYSTEM_FALLBACK_PICK_IMAGES_ASPECT_RATIO_SQUARE_1_1 = 0
```

Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS_ASPECT_RATIO()` specifying a square 1:1 aspect ratio thumbnail sizing within the media grid.

### SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_CAMERA

```
public static final @NonNull String SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_CAMERA
```

Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID()` specifying the Camera album.

### SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_DOWNLOADS

```
public static final @NonNull String SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_DOWNLOADS
```

Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID()` specifying the Downloads album.

### SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_FAVORITES

```
public static final @NonNull String SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_FAVORITES
```

Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID()` specifying the Favorites album.

### SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_SCREENSHOTS

```
public static final @NonNull String SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_SCREENSHOTS
```

Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID()` specifying the Screenshots album.

### SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_VIDEOS

```
public static final @NonNull String SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_VIDEOS
```

Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_ALBUM_ID()` specifying the Videos album.

### SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE_COLLAPSED

```
public static final int SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE_COLLAPSED = 0
```

Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE()` specifying a collapsed highlight section.

### SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE_EXPANDED

```
public static final int SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE_EXPANDED = 1
```

Value for `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#KEY_SYSTEM_FALLBACK_PICK_IMAGES_HIGHLIGHT_TYPE()` specifying an expanded highlight grid.

## Public constructors

### PickVisualMedia

Added in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/photopicker#1.0.0-alpha03)

```
public PickVisualMedia()
```

## Public methods

### createIntent

Added in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/photopicker#1.0.0-alpha03)

```
@CallSuper
public @NonNull Intent createIntent(
    @NonNull Context context,
    @NonNull PickVisualMediaRequest input
)
```

Create an intent that can be used for `https://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)`.

### getSynchronousResult

Added in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/photopicker#1.0.0-alpha03)

```
public final ActivityResultContract.SynchronousResult<Uri> getSynchronousResult(
    @NonNull Context context,
    @NonNull PickVisualMediaRequest input
)
```

An optional method you can implement that can be used to potentially provide a result in lieu of starting an activity.

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract.SynchronousResult<https://developer.android.com/reference/android/net/Uri.html>` | the result wrapped in a `https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract.SynchronousResult` or `null` if the call should proceed to start an activity. |

### isPhotoPickerAvailable

Added in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/photopicker#1.0.0-alpha03) Deprecated in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/photopicker#1.0.0-alpha03)

```
public static final boolean [isPhotoPickerAvailable](https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#isPhotoPickerAvailable())()
```

> [!CAUTION]
> **This method is deprecated.**   
> This method is deprecated in favor of isPhotoPickerAvailable(context) to support the picker provided by updatable system apps, use this instead:
>
> ```
> isPhotoPickerAvailable(context)
> ```

Check if the current device has support for the photo picker by checking the running Android version or the SDK extension version.

Note that this does not check for any Intent handled by `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()`.

### isPhotoPickerAvailable

Added in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/photopicker#1.0.0-alpha03)

```
public static final boolean isPhotoPickerAvailable(@NonNull Context context)
```

Check if the current device has support for the photo picker by checking the running Android version, the SDK extension version or the picker provided by a system app implementing `https://developer.android.com/reference/androidx/photopicker/activity/PickVisualMedia#ACTION_SYSTEM_FALLBACK_PICK_IMAGES()`.

### parseResult

Added in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/photopicker#1.0.0-alpha03)

```
public final Uri parseResult(int resultCode, Intent intent)
```

Convert result obtained from `https://developer.android.com/reference/android/app/Activity.html#onActivityResult(int, int, android.content.Intent)` to `https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract`.