# Person.Builder

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

*** ** * ** ***


```
public class Person.Builder
```

<br />

*** ** * ** ***

Builder for the immutable `https://developer.android.com/reference/androidx/core/app/Person` class.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/core/app/Person.Builder#Builder()()` Creates a new, empty `https://developer.android.com/reference/androidx/core/app/Person.Builder`. |

| ### Public methods |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/core/app/Person` | `https://developer.android.com/reference/androidx/core/app/Person.Builder#build()()` Creates and returns the `https://developer.android.com/reference/androidx/core/app/Person` this builder represents. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/core/app/Person.Builder` | `https://developer.android.com/reference/androidx/core/app/Person.Builder#setBot(boolean)(boolean bot)` Sets whether or not this `https://developer.android.com/reference/androidx/core/app/Person` represents a machine rather than a human. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/core/app/Person.Builder` | `https://developer.android.com/reference/androidx/core/app/Person.Builder#setIcon(androidx.core.graphics.drawable.IconCompat)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/core/graphics/drawable/IconCompat icon)` Set an icon for this `https://developer.android.com/reference/androidx/core/app/Person`. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/core/app/Person.Builder` | `https://developer.android.com/reference/androidx/core/app/Person.Builder#setImportant(boolean)(boolean important)` Sets whether this is an important person. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/core/app/Person.Builder` | `https://developer.android.com/reference/androidx/core/app/Person.Builder#setKey(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html key)` Set a unique identifier for this `https://developer.android.com/reference/androidx/core/app/Person`. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/core/app/Person.Builder` | `https://developer.android.com/reference/androidx/core/app/Person.Builder#setName(java.lang.CharSequence)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/CharSequence.html name)` Give this `https://developer.android.com/reference/androidx/core/app/Person` a name to use for display. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/core/app/Person.Builder` | `https://developer.android.com/reference/androidx/core/app/Person.Builder#setUri(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html uri)` Set a URI for this `https://developer.android.com/reference/androidx/core/app/Person` which can be any of the following: |

## Public constructors

### Builder

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

```
public Builder()
```

Creates a new, empty `https://developer.android.com/reference/androidx/core/app/Person.Builder`.

## Public methods

### build

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

```
public @NonNull Person build()
```

Creates and returns the `https://developer.android.com/reference/androidx/core/app/Person` this builder represents.

### setBot

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

```
public @NonNull Person.Builder setBot(boolean bot)
```

Sets whether or not this `https://developer.android.com/reference/androidx/core/app/Person` represents a machine rather than a human. This is used primarily for testing and automated tooling.

### setIcon

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

```
public @NonNull Person.Builder setIcon(@Nullable IconCompat icon)
```

Set an icon for this `https://developer.android.com/reference/androidx/core/app/Person`.

The system will prefer this icon over any images that are resolved from `https://developer.android.com/reference/androidx/core/app/Person.Builder#setUri(java.lang.String)`.

### setImportant

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

```
public @NonNull Person.Builder setImportant(boolean important)
```

Sets whether this is an important person. Use this method to denote users who frequently interact with the user of this device when `https://developer.android.com/reference/androidx/core/app/Person.Builder#setUri(java.lang.String)` isn't provided with `https://developer.android.com/reference/android/provider/ContactsContract.Contacts.html#CONTENT_LOOKUP_URI`, and instead with the `mailto:` or `tel:` schemas.

### setKey

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

```
public @NonNull Person.Builder setKey(@Nullable String key)
```

Set a unique identifier for this `https://developer.android.com/reference/androidx/core/app/Person`. This is especially useful if the `https://developer.android.com/reference/androidx/core/app/Person.Builder#setName(java.lang.CharSequence)` value isn't unique. This value is preferred for identification, but if it's not provided, the person's name will be used in its place.

### setName

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

```
public @NonNull Person.Builder setName(@Nullable CharSequence name)
```

Give this `https://developer.android.com/reference/androidx/core/app/Person` a name to use for display. This can be, for example, a full name, nickname, username, etc.

### setUri

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

```
public @NonNull Person.Builder setUri(@Nullable String uri)
```

Set a URI for this `https://developer.android.com/reference/androidx/core/app/Person` which can be any of the following:

- The `String` representation of a `https://developer.android.com/reference/android/provider/ContactsContract.Contacts.html#CONTENT_LOOKUP_URI`
- A `mailto:` schema\*
- A `tel:` schema\*

\*Note for these schemas, the path portion of the URI must exist in the contacts database in their appropriate column, otherwise the reference will be discarded.