# CarMessage.Builder

Artifact: [androidx.car.app:app](https://developer.android.com/jetpack/androidx/releases/car-app) [View Source](https://cs.android.com/search?q=file:androidx/car/app/messaging/model/CarMessage.java+class:androidx.car.app.messaging.model.CarMessage.Builder) Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.3.0)

*** ** * ** ***


```
public final class CarMessage.Builder
```

<br />

*** ** * ** ***

A builder for `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage`

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#Builder()()` |

| ### Public methods |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage` | `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#build()()` Returns a new `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage` instance defined by this builder |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder` | `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#setBody(androidx.car.app.model.CarText)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/car/app/model/CarText body)` Sets a `https://developer.android.com/reference/androidx/car/app/model/CarText` representing the message body |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder` | `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#setMultimediaMimeType(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html multimediaMimeType)` Sets a `https://developer.android.com/reference/java/lang/String.html` representing the MIME type of a multimedia message |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder` | `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#setMultimediaUri(android.net.Uri)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/net/Uri.html multimediaUri)` Sets a `https://developer.android.com/reference/android/net/Uri.html` pointing to the contents of a multimedia message. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder` | `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#setRead(boolean)(boolean isRead)` Sets a `boolean`, indicating whether the message has been read |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder` | `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#setReceivedTimeEpochMillis(long)(long receivedTimeEpochMillis)` Sets a `long` representing the message timestamp (in epoch millis) |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder` | `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#setSender(androidx.core.app.Person)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/core/app/Person sender)` Sets a `https://developer.android.com/reference/androidx/core/app/Person` representing the message sender |

## Public constructors

### Builder

Added in 1.3.0

```
public Builder()
```

## Public methods

### build

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.3.0)

```
public @NonNull CarMessage build()
```

Returns a new `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage` instance defined by this builder

### setBody

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.3.0)

```
public @NonNull CarMessage.Builder setBody(@Nullable CarText body)
```

Sets a `https://developer.android.com/reference/androidx/car/app/model/CarText` representing the message body

Messages must have one or both of the following:

- A message body (text)
- A MIME type + URI (image, audio, etc.)

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#setMultimediaMimeType(java.lang.String)` |   |
| `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#setMultimediaUri(android.net.Uri)` |   |

### setMultimediaMimeType

Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.4.0)

```
public @NonNull CarMessage.Builder setMultimediaMimeType(@Nullable String multimediaMimeType)
```

Sets a `https://developer.android.com/reference/java/lang/String.html` representing the MIME type of a multimedia message

Messages must have one or both of the following:

- A message body (text)
- A MIME type + URI (image, audio, etc.)

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#setBody(androidx.car.app.model.CarText)` |   |
| `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#setMultimediaUri(android.net.Uri)` |   |

### setMultimediaUri

Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.4.0)

```
public @NonNull CarMessage.Builder setMultimediaUri(@Nullable Uri multimediaUri)
```

Sets a `https://developer.android.com/reference/android/net/Uri.html` pointing to the contents of a multimedia message.

Messages must have one or both of the following:

- A message body (text)
- A MIME type + URI (image, audio, etc.)

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#setBody(androidx.car.app.model.CarText)` |   |
| `https://developer.android.com/reference/androidx/car/app/messaging/model/CarMessage.Builder#setMultimediaMimeType(java.lang.String)` |   |

### setRead

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.3.0)

```
public @NonNull CarMessage.Builder setRead(boolean isRead)
```

Sets a `boolean`, indicating whether the message has been read

### setReceivedTimeEpochMillis

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.3.0)

```
public @NonNull CarMessage.Builder setReceivedTimeEpochMillis(long receivedTimeEpochMillis)
```

Sets a `long` representing the message timestamp (in epoch millis)

### setSender

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.3.0)

```
public @NonNull CarMessage.Builder setSender(@Nullable Person sender)
```

Sets a `https://developer.android.com/reference/androidx/core/app/Person` representing the message sender

The `https://developer.android.com/reference/androidx/core/app/Person` must specify a non-null `https://developer.android.com/reference/androidx/core/app/Person.Builder#setName(java.lang.CharSequence)` and `https://developer.android.com/reference/androidx/core/app/Person.Builder#setKey(java.lang.String)`.