Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions) Summary: [Ctors](https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#inhmethods)

# PhotoPickerSelectionParams.Builder

*** ** * ** ***

` public static final class PhotoPickerSelectionParams.Builder `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.widget.photopicker.PhotoPickerSelectionParams.Builder |

<br />

*** ** * ** ***

A builder class used to construct and validate an immutable `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams` object.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#Builder()() ` |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#build()() ` Builds a new immutable `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams` object. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#clearMaxMediaItemResolution()() ` Clears the maximum media item resolution constraint. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#clearMaxMediaItemSize()() ` Clears the maximum media item size constraint. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#clearMaxSelectionBatchSize()() ` Clears the maximum cumulative selection size constraint. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#clearMaxVideoDuration()() ` Clears the maximum video duration constraint. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#clearMimeTypes()() ` Clears the MIME type constraint. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#clearMinMediaItemResolution()() ` Clears the minimum media item resolution constraint. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#clearMinVideoDuration()() ` Clears the minimum video duration constraint. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMaxMediaItemResolutionInPixels(long)(long maxMediaItemResolutionInPixels) ` Sets the maximum allowed resolution constraint for a media item to be selectable. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMaxMediaItemSizeInBytes(long)(long maxMediaItemSizeInBytes) ` Sets the maximum allowed size, in bytes, for any individual media item to be selectable. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMaxSelectionBatchSizeInBytes(long)(long maxSelectionBatchSizeInBytes) ` Sets the maximum allowed cumulative size, in bytes, for the entire batch of selected media items. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMaxVideoDuration(java.time.Duration)(https://developer.android.com/reference/java/time/Duration maxVideoDuration) ` Sets the maximum allowed duration for a video media item to be selectable. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMimeTypes(java.util.List<java.lang.String>)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String> mimeTypes) ` Sets the list of MIME types that are allowed for selection. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMinMediaItemResolutionInPixels(long)(long minMediaItemResolutionInPixels) ` Sets the minimum allowed resolution constraint for a media item to be selectable. |
| ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | ` https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMinVideoDuration(java.time.Duration)(https://developer.android.com/reference/java/time/Duration minVideoDuration) ` Sets the minimum allowed duration for a video media item to be selectable. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Public constructors

### Builder

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public Builder ()
```

<br />

<br />

## Public methods

### build

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams build ()
```

Builds a new immutable `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams` object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams` | A new `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams` object with the configured properties. This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if any of the minimum values are greater than their corresponding maximum values. |

### clearMaxMediaItemResolution

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder clearMaxMediaItemResolution ()
```

Clears the maximum media item resolution constraint.

On calling this, the PhotoPicker will not enforce an upper limit on the total resolution of individual media items.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMaxMediaItemResolutionInPixels(long)`

### clearMaxMediaItemSize

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder clearMaxMediaItemSize ()
```

Clears the maximum media item size constraint.

On calling this, the PhotoPicker will not enforce an upper limit on the size of individual media items.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMaxMediaItemSizeInBytes(long)`

### clearMaxSelectionBatchSize

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder clearMaxSelectionBatchSize ()
```

Clears the maximum cumulative selection size constraint.

On calling this, the PhotoPicker will not enforce a limit on the total aggregate size of the selected media items in a single session.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMaxSelectionBatchSizeInBytes(long)`

### clearMaxVideoDuration

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder clearMaxVideoDuration ()
```

Clears the maximum video duration constraint.

On calling this, the PhotoPicker will not enforce an upper limit on the duration of video media items.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMaxVideoDuration(java.time.Duration)`

### clearMimeTypes

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder clearMimeTypes ()
```

Clears the MIME type constraint.

On calling this, the builder will revert to its default state of allowing all supported media MIME types (images and videos) for selection.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMimeTypes(java.util.List<java.lang.String>)`

### clearMinMediaItemResolution

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder clearMinMediaItemResolution ()
```

Clears the minimum media item resolution constraint.

On calling this, the PhotoPicker will not enforce a lower limit on the total resolution of individual media items.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMinMediaItemResolutionInPixels(long)`

### clearMinVideoDuration

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder clearMinVideoDuration ()
```

Clears the minimum video duration constraint.

On calling this, the PhotoPicker will not enforce a lower limit on the duration of video media items.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#setMinVideoDuration(java.time.Duration)`

### setMaxMediaItemResolutionInPixels

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder setMaxMediaItemResolutionInPixels (long maxMediaItemResolutionInPixels)
```

Sets the maximum allowed resolution constraint for a media item to be selectable.

Items exceeding the provided resolution will be disabled for selection.

The maximum resolution should not be less than the minimum resolution, or an exception will be thrown during the `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#build()` process.

If it is not set, no maximum resolution constraint will be enforced on the media items that the user can select.

<br />

| Parameters ||
|---|---|
| `maxMediaItemResolutionInPixels` | `long`: The maximum media item resolution in pixels <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if `maxMediaItemResolutionInPixels` is negative or zero |

### setMaxMediaItemSizeInBytes

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder setMaxMediaItemSizeInBytes (long maxMediaItemSizeInBytes)
```

Sets the maximum allowed size, in bytes, for any individual media item to be selectable.

The calling application can set this to limit the size of media returned by the PhotoPicker. Items exceeding this limit will be disabled for selection.

If it is not set, no maximum size constraint will be enforced on the media items that the user can select.

<br />

| Parameters ||
|---|---|
| `maxMediaItemSizeInBytes` | `long`: The maximum size in bytes. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if `maxMediaItemSizeInBytes` is negative or zero |

### setMaxSelectionBatchSizeInBytes

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder setMaxSelectionBatchSizeInBytes (long maxSelectionBatchSizeInBytes)
```

Sets the maximum allowed cumulative size, in bytes, for the entire batch of selected media items.

This limits the total aggregate size of the media selected by the user. If a new selection causes the total size to exceed this limit, the user will be alerted that they have reached the maximum selection size limit and must deselect items before proceeding.

If it is not set, no collective batch size constraint will be enforced on media items that the user can select.

<br />

| Parameters ||
|---|---|
| `maxSelectionBatchSizeInBytes` | `long`: The maximum batch size in bytes. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if `maxSelectionBatchSizeInBytes` is negative or zero |

### setMaxVideoDuration

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder setMaxVideoDuration (Duration maxVideoDuration)
```

Sets the maximum allowed duration for a video media item to be selectable.

Videos exceeding this duration will be disabled for selection.

The maximum duration should not be less than minimum duration, or an exception will be thrown during the `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#build()` process.

If it is not set, no maximum video duration constraint will be enforced on the videos that the user can select.

<br />

| Parameters ||
|---|---|
| `maxVideoDuration` | `Duration`: The maximum video duration. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if `maxVideoDuration` is null, negative or zero |

### setMimeTypes

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder setMimeTypes (List<String> mimeTypes)
```

Sets the list of MIME types that are allowed for selection.

Media items that violate this constraint will be disabled for selection.

This parameter is different from the MIME types which can be specified in `https://developer.android.com/reference/android/content/Intent#setType(java.lang.String)` extra or `https://developer.android.com/reference/android/content/Intent#EXTRA_MIME_TYPES`, when those are used to launch the photo picker, they will filter out any media items which has a MIME type not added to them. While the MIME Types defined by this API will still exist in photo picker media grid, but disabled from selection.

Filter media items using the MIME Types defined in `https://developer.android.com/reference/android/content/Intent#setType(java.lang.String)` extra or `https://developer.android.com/reference/android/content/Intent#EXTRA_MIME_TYPES` will happen first, before disabling the media items based on the MIME Types passed to this API.

Callers must indicate the acceptable document MIME types. For example, to select photos, use `image/*`.

If it is not set, no MIME type constraint will be enforced on the media items the user can select.

<br />

| Parameters ||
|---|---|
| `mimeTypes` | `List`: The list of allowed MIME types. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if `mimeTypes` is null, empty, or contains non-media types (types not starting with "image/" or "video/"). |

### setMinMediaItemResolutionInPixels

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder setMinMediaItemResolutionInPixels (long minMediaItemResolutionInPixels)
```

Sets the minimum allowed resolution constraint for a media item to be selectable.

Media items with a resolution lower than the provided threshold will be disabled for selection.

The minimum resolution should not be greater than the maximum resolution, or an exception will be thrown during the `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#build()` process.

If it is not set, no minimum resolution constraint will be enforced on the media items that the user can select.

<br />

| Parameters ||
|---|---|
| `minMediaItemResolutionInPixels` | `long`: The minimum allowed resolution in total pixels. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if `minMediaItemResolutionInPixels` is negative. |

### setMinVideoDuration

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [U Extensions 22](https://developer.android.com/sdkExtensions)

```
public PhotoPickerSelectionParams.Builder setMinVideoDuration (Duration minVideoDuration)
```

Sets the minimum allowed duration for a video media item to be selectable.

Videos shorter than this duration will be disabled for selection.

The maximum duration should not be less than minimum duration, or an exception will be thrown during the `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder#build()` process.

If it is not set, no minimum video duration constraint will be enforced on the videos that the user can select.

<br />

| Parameters ||
|---|---|
| `minVideoDuration` | `Duration`: The minimum video duration. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/photopicker/PhotoPickerSelectionParams.Builder` | This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if `minVideoDuration` is negative |