# IntentSanitizer.Builder

Artifact: [androidx.core:core](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/content/IntentSanitizer.java+class:androidx.core.content.IntentSanitizer.Builder) Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

*** ** * ** ***

<br />

```
class IntentSanitizer.Builder
```

<br />

*** ** * ** ***

General strategy of building is to only offer additive "or" operations that are chained together. Any more complex operations can be performed by the developer providing their own custom Predicate.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#Builder()()` |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowAction(java.lang.String)(action: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Add an action to the list of allowed actions. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowAction(androidx.core.util.Predicate<java.lang.String>)(filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>)` Add a filter for allowed actions. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowAnyComponent()()` Allow any components. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowCategory(java.lang.String)(category: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Add a category to the allowed category list. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowCategory(androidx.core.util.Predicate<java.lang.String>)(filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>)` Add a filter for allowed categories. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowClipData(androidx.core.util.Predicate<android.content.ClipData>)(filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://developer.android.com/reference/android/content/ClipData.html!>)` Allows clipData that passes the given filter. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowClipDataText()()` Allows clipData that contains text. overwrite each other. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowClipDataUri(androidx.core.util.Predicate<android.net.Uri>)(filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://developer.android.com/reference/android/net/Uri.html!>)` Allows clipData whose items URIs pass the given URI filter. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowClipDataUriWithAuthority(java.lang.String)(authority: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Allows clipData whose items URIs authorities match the given authority. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowComponent(android.content.ComponentName)(component: https://developer.android.com/reference/android/content/ComponentName.html)` Add a component to the allowed components list. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowComponent(androidx.core.util.Predicate<android.content.ComponentName>)(filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://developer.android.com/reference/android/content/ComponentName.html!>)` Add a filter for allowed components. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowComponentWithPackage(java.lang.String)(packageName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Allow any component under the specified package. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowData(androidx.core.util.Predicate<android.net.Uri>)(filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://developer.android.com/reference/android/net/Uri.html!>)` Allow data that passes the filter test. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowDataWithAuthority(java.lang.String)(authority: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Convenient method to allow all data whose URI authority equals to the given. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowExtra(java.lang.String,java.lang.Class<?>)(key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, clazz: https://developer.android.com/reference/java/lang/Class.html<*>)` Allows an extra member whose key and type of value matches the given. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowExtra(java.lang.String,androidx.core.util.Predicate<java.lang.Object>)(key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!>)` Allows an extra member whose key matches the given key and whose value passes the filter test. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `<T> https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowExtra(java.lang.String,java.lang.Class<T>,androidx.core.util.Predicate<T>)(key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, clazz: https://developer.android.com/reference/java/lang/Class.html<T!>, valueFilter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<T!>)` Allows an extra member whose key matches the given key and whose value is of the type of the given clazz and passes the value filter. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowExtraOutput(androidx.core.util.Predicate<android.net.Uri>)(filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://developer.android.com/reference/android/net/Uri.html!>)` Allows an extra member with the key MediaStore.EXTRA_OUTPUT. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowExtraOutput(java.lang.String)(uriAuthority: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Allows an extra member with the key MediaStore.EXTRA_OUTPUT. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowExtraStream(androidx.core.util.Predicate<android.net.Uri>)(filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://developer.android.com/reference/android/net/Uri.html!>)` Allows an extra member with the key Intent.EXTRA_STREAM. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowExtraStreamUriWithAuthority(java.lang.String)(uriAuthority: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Allows an extra member with the key Intent.EXTRA_STREAM. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowFlags(int)(flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets allowed flags. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowHistoryStackFlags()()` Adds all history stack flags into the allowed flags set. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowIdentifier()()` Allows any identifier. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowPackage(androidx.core.util.Predicate<java.lang.String>)(filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>)` Add a filter for allowed packages. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowPackage(java.lang.String)(packageName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Add a package to the allowed packages. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowReceiverFlags()()` Adds all receiver flags into the allowed flags set. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowSelector()()` Allow any selector. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowSourceBounds()()` Allow any source bounds. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowType(androidx.core.util.Predicate<java.lang.String>)(filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>)` Add a filter for allowed data types. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowType(java.lang.String)(type: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Add a data type to the allowed type list. |
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer` | `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#build()()` Build the IntentSanitizer. |

## Public constructors

### Builder

Added in 1.9.0

```
Builder()
```

## Public functions

### allowAction

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowAction(action: String): IntentSanitizer.Builder
```

Add an action to the list of allowed actions. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `action: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the name of an action. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowAction

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowAction(filter: Predicate<String!>): IntentSanitizer.Builder
```

Add a filter for allowed actions. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>` | a filter that tests if an action is allowed. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowAnyComponent

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowAnyComponent(): IntentSanitizer.Builder
```

Allow any components. Be cautious to call this method. When this method is called, you should definitely disallow the 4 grant URI permission flags. This method is useful in case the redirected intent is designed to support implicit intent. This method is made mutually exclusive to the 4 methods that allow components or packages.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowCategory

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowCategory(category: String): IntentSanitizer.Builder
```

Add a category to the allowed category list. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `category: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the allowed category. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowCategory

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowCategory(filter: Predicate<String!>): IntentSanitizer.Builder
```

Add a filter for allowed categories. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>` | the category filter. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowClipData

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowClipData(filter: Predicate<ClipData!>): IntentSanitizer.Builder
```

Allows clipData that passes the given filter. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://developer.android.com/reference/android/content/ClipData.html!>` | the given clipData filter. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowClipDataText

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowClipDataText(): IntentSanitizer.Builder
```

Allows clipData that contains text. overwrite each other.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowClipDataUri

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowClipDataUri(filter: Predicate<Uri!>): IntentSanitizer.Builder
```

Allows clipData whose items URIs pass the given URI filter. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://developer.android.com/reference/android/net/Uri.html!>` | the given URI filter. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowClipDataUriWithAuthority

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowClipDataUriWithAuthority(authority: String): IntentSanitizer.Builder
```

Allows clipData whose items URIs authorities match the given authority. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `authority: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the given authority. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowComponent

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowComponent(component: ComponentName): IntentSanitizer.Builder
```

Add a component to the allowed components list. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `component: https://developer.android.com/reference/android/content/ComponentName.html` | the allowed component. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowComponent

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowComponent(filter: Predicate<ComponentName!>): IntentSanitizer.Builder
```

Add a filter for allowed components. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://developer.android.com/reference/android/content/ComponentName.html!>` | the component filter. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowComponentWithPackage

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowComponentWithPackage(packageName: String): IntentSanitizer.Builder
```

Allow any component under the specified package. Note this does not allow the package itself. If the intent contains a package, call allowPackage method. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowData

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowData(filter: Predicate<Uri!>): IntentSanitizer.Builder
```

Allow data that passes the filter test. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://developer.android.com/reference/android/net/Uri.html!>` | data filter. |

### allowDataWithAuthority

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowDataWithAuthority(authority: String): IntentSanitizer.Builder
```

Convenient method to allow all data whose URI authority equals to the given. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `authority: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the URI's authority. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder |

### allowExtra

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowExtra(key: String, clazz: Class<*>): IntentSanitizer.Builder
```

Allows an extra member whose key and type of value matches the given. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the given extra key. |
| `clazz: https://developer.android.com/reference/java/lang/Class.html<*>` | the given class of the extra value. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowExtra

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowExtra(key: String, filter: Predicate<Any!>): IntentSanitizer.Builder
```

Allows an extra member whose key matches the given key and whose value passes the filter test. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the extra key. |
| `filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!>` | the filter for the extra value. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowExtra

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun <T> allowExtra(key: String, clazz: Class<T!>, valueFilter: Predicate<T!>): IntentSanitizer.Builder
```

Allows an extra member whose key matches the given key and whose value is of the type of the given clazz and passes the value filter. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | given extra key. |
| `clazz: https://developer.android.com/reference/java/lang/Class.html<T!>` | given type of the extra value. |
| `valueFilter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<T!>` | the extra value filter. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowExtraOutput

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowExtraOutput(filter: Predicate<Uri!>): IntentSanitizer.Builder
```

Allows an extra member with the key MediaStore.EXTRA_OUTPUT. The value type has to be URI and the value also passes the given filter test. In order to use this method, user has to be explicitly allow the `https://developer.android.com/reference/android/content/Intent.html#FLAG_GRANT_READ_URI_PERMISSION` and `https://developer.android.com/reference/android/content/Intent.html#FLAG_GRANT_WRITE_URI_PERMISSION` flags. Otherwise, it will trigger penalty during sanitization. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://developer.android.com/reference/android/net/Uri.html!>` | the given URI authority. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowExtraOutput

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowExtraOutput(uriAuthority: String): IntentSanitizer.Builder
```

Allows an extra member with the key MediaStore.EXTRA_OUTPUT. The value type has to be URI and the authority matches the given parameter. In order to use this method, user has to be explicitly allow the `https://developer.android.com/reference/android/content/Intent.html#FLAG_GRANT_READ_URI_PERMISSION` and `https://developer.android.com/reference/android/content/Intent.html#FLAG_GRANT_WRITE_URI_PERMISSION` flags. Otherwise, it will trigger penalty during sanitization. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `uriAuthority: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the given URI authority. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowExtraStream

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowExtraStream(filter: Predicate<Uri!>): IntentSanitizer.Builder
```

Allows an extra member with the key Intent.EXTRA_STREAM. The value type has to be URI and the value also passes the given filter test. In order to use this method, user has to be explicitly allow the `https://developer.android.com/reference/android/content/Intent.html#FLAG_GRANT_READ_URI_PERMISSION` flag. Otherwise, it will trigger penalty during sanitization. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://developer.android.com/reference/android/net/Uri.html!>` | the given URI authority. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowExtraStreamUriWithAuthority

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowExtraStreamUriWithAuthority(uriAuthority: String): IntentSanitizer.Builder
```

Allows an extra member with the key Intent.EXTRA_STREAM. The value type has to be URI and the authority matches the given parameter. In order to use this method, user has to be explicitly allow the `https://developer.android.com/reference/android/content/Intent.html#FLAG_GRANT_READ_URI_PERMISSION` flag. Otherwise, it will trigger penalty during sanitization. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `uriAuthority: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the given URI authority. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowFlags

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowFlags(flags: Int): IntentSanitizer.Builder
```

Sets allowed flags. This method can be called multiple times and the result is additive. They will not overwrite each other. In most cases following grant URI permission related flags should **not** be allowed:

- FLAG_GRANT_PERSISTABLE_URI_PERMISSION
- FLAG_GRANT_PREFIX_URI_PERMISSION
- FLAG_GRANT_READ_URI_PERMISSION
- FLAG_GRANT_WRITE_URI_PERMISSION

Setting these flags would allow others to access URIs only your app has permission to access. These URIs could be set in intent's data, clipData and/or, in certain circumstances, extras with key of `https://developer.android.com/reference/android/content/Intent.html#EXTRA_STREAM` or `https://developer.android.com/reference/android/provider/MediaStore.html#EXTRA_OUTPUT`. When these flags are allowed, you should sanitize URIs. See `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowDataWithAuthority(java.lang.String)`, `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowData(androidx.core.util.Predicate<android.net.Uri>)`, `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowClipDataUriWithAuthority(java.lang.String)`, `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowClipDataUri(androidx.core.util.Predicate<android.net.Uri>)`, `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowExtraStreamUriWithAuthority(java.lang.String)`, `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowExtraStream(androidx.core.util.Predicate<android.net.Uri>)`, `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowExtraOutput(java.lang.String)`, `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder#allowExtraOutput(androidx.core.util.Predicate<android.net.Uri>)`

| Parameters |
|---|---|
| `flags: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | allowed flags. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowHistoryStackFlags

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowHistoryStackFlags(): IntentSanitizer.Builder
```

Adds all history stack flags into the allowed flags set. They are:

- FLAG_ACTIVITY_BROUGHT_TO_FRONT
- FLAG_ACTIVITY_CLEAR_TASK
- FLAG_ACTIVITY_CLEAR_TOP
- FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
- FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
- FLAG_ACTIVITY_LAUNCH_ADJACENT
- FLAG_ACTIVITY_MULTIPLE_TASK
- FLAG_ACTIVITY_NEW_DOCUMENT
- FLAG_ACTIVITY_NEW_TASK
- FLAG_ACTIVITY_NO_ANIMATION
- FLAG_ACTIVITY_NO_HISTORY
- FLAG_ACTIVITY_PREVIOUS_IS_TOP
- FLAG_ACTIVITY_REORDER_TO_FRONT
- FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
- FLAG_ACTIVITY_RETAIN_IN_RECENTS
- FLAG_ACTIVITY_SINGLE_TOP
- FLAG_ACTIVITY_TASK_ON_HOME

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowIdentifier

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowIdentifier(): IntentSanitizer.Builder
```

Allows any identifier.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowPackage

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowPackage(filter: Predicate<String!>): IntentSanitizer.Builder
```

Add a filter for allowed packages. This does not imply the intent can contain a component from the allowed package; instead, this value will be compared against the result returned from the Intent's `https://developer.android.com/reference/android/content/Intent.html#getPackage()` method. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>` | the package name filter. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowPackage

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowPackage(packageName: String): IntentSanitizer.Builder
```

Add a package to the allowed packages. This does not imply the intent can contain a component from the allowed package; instead, this value will be compared against the result returned from the Intent's `https://developer.android.com/reference/android/content/Intent.html#getPackage()` method. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowReceiverFlags

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowReceiverFlags(): IntentSanitizer.Builder
```

Adds all receiver flags into the allowed flags set. They are

- FLAG_RECEIVER_FOREGROUND
- FLAG_RECEIVER_NO_ABORT
- FLAG_RECEIVER_REGISTERED_ONLY
- FLAG_RECEIVER_REPLACE_PENDING
- FLAG_RECEIVER_VISIBLE_TO_INSTANT_APPS

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowSelector

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowSelector(): IntentSanitizer.Builder
```

Allow any selector.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowSourceBounds

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowSourceBounds(): IntentSanitizer.Builder
```

Allow any source bounds.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder. |

### allowType

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowType(filter: Predicate<String!>): IntentSanitizer.Builder
```

Add a filter for allowed data types. This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `filter: https://developer.android.com/reference/kotlin/androidx/core/util/Predicate<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>` | the data type filter. |

### allowType

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun allowType(type: String): IntentSanitizer.Builder
```

Add a data type to the allowed type list. Exact match is used to check the allowed types. For example, if you pass in "image/\*" here, it won't allow an intent with type of "image/png". This method can be called multiple times and the result is additive. They will not overwrite each other.

| Parameters |
|---|---|
| `type: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the data type that is allowed |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer.Builder` | this builder |

### build

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/core#1.9.0)

```
fun build(): IntentSanitizer
```

Build the IntentSanitizer.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/content/IntentSanitizer` | the IntentSanitizer |