# NotificationCompat.MessagingStyle.Message

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

*** ** * ** ***


```
public final class NotificationCompat.MessagingStyle.Message
```

<br />

*** ** * ** ***

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#Message(java.lang.CharSequence,long,androidx.core.app.Person)( @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/CharSequence.html text, long timestamp, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/core/app/Person person )` Creates a new `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message` with the given text, timestamp, and sender. |
| `[Message](https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#Message(java.lang.CharSequence,long,java.lang.CharSequence))( @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/CharSequence.html text, long timestamp, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/CharSequence.html sender )` **This method is deprecated.** Use the alternative constructor instead. <br /> |

| ### Public methods |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#getDataMimeType()()` Get the MIME type of the data pointed to by the URI. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/net/Uri.html` | `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#getDataUri()()` Get the the Uri pointing to the content of the message. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/os/Bundle.html` | `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#getExtras()()` Get the extras Bundle for this message. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/core/app/Person` | `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#getPerson()()` Returns the `https://developer.android.com/reference/androidx/core/app/Person` sender of this message. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/CharSequence.html` | `[getSender](https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#getSender())()` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#getPerson()` <br /> |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/CharSequence.html` | `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#getText()()` Get the text to be used for this message, or the fallback text if a type and content Uri have been set |
| `long` | `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#getTimestamp()()` Get the time at which this message arrived in ms since Unix epoch. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message` | `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#setData(java.lang.String,android.net.Uri)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html dataMimeType, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/net/Uri.html dataUri)` Sets a binary blob of data and an associated MIME type for a message. |

## Public constructors

### Message

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

```
public Message(
    @Nullable CharSequence text,
    long timestamp,
    @Nullable Person person
)
```

Creates a new `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message` with the given text, timestamp, and sender.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/CharSequence.html text` | A `https://developer.android.com/reference/java/lang/CharSequence.html` to be displayed as the message content |
| `long timestamp` | Time at which the message arrived in ms since Unix epoch |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/core/app/Person person` | A `https://developer.android.com/reference/androidx/core/app/Person` whose `https://developer.android.com/reference/androidx/core/app/Person#getName()` value is used as the display name for the sender. This should be `null` for messages by the current user, in which case, the platform will insert `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle#getUserDisplayName()`. A `https://developer.android.com/reference/androidx/core/app/Person`'s key should be consistent during re-posts of the notification. |

### Message

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

```
public [Message](https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#Message(java.lang.CharSequence,long,java.lang.CharSequence))(
    @Nullable CharSequence text,
    long timestamp,
    @Nullable CharSequence sender
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use the alternative constructor instead.

Constructor

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/CharSequence.html text` | A `https://developer.android.com/reference/java/lang/CharSequence.html` to be displayed as the message content |
| `long timestamp` | Time at which the message arrived in ms since Unix epoch |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/CharSequence.html sender` | A `https://developer.android.com/reference/java/lang/CharSequence.html` to be used for displaying the name of the sender. Should be `null` for messages by the current user, in which case the platform will insert `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle#getUserDisplayName()`. Should be unique amongst all individuals in the conversation, and should be consistent during re-posts of the notification. |

## Public methods

### getDataMimeType

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

```
public @Nullable String getDataMimeType()
```

Get the MIME type of the data pointed to by the URI.

### getDataUri

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

```
public @Nullable Uri getDataUri()
```

Get the the Uri pointing to the content of the message. Can be null, in which case {@see #getText()} is used.

### getExtras

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

```
public @NonNull Bundle getExtras()
```

Get the extras Bundle for this message.

### getPerson

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

```
public @Nullable Person getPerson()
```

Returns the `https://developer.android.com/reference/androidx/core/app/Person` sender of this message.

### getSender

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

```
public @Nullable CharSequence [getSender](https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#getSender())()
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message#getPerson()`

Get the text used to display the contact's name in the messaging experience

### getText

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

```
public @Nullable CharSequence getText()
```

Get the text to be used for this message, or the fallback text if a type and content Uri have been set

### getTimestamp

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

```
public long getTimestamp()
```

Get the time at which this message arrived in ms since Unix epoch.

### setData

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

```
public @NonNull NotificationCompat.MessagingStyle.Message setData(@Nullable String dataMimeType, @Nullable Uri dataUri)
```

Sets a binary blob of data and an associated MIME type for a message. In the case where the platform doesn't support the MIME type, the original text provided in the constructor will be used.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html dataMimeType` | The MIME type of the content. See `https://developer.android.com/reference/android/graphics/ImageDecoder.html#isMimeTypeSupported(java.lang.String)` for a list of supported image MIME types. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/net/Uri.html dataUri` | The uri containing the content whose type is given by the MIME type. Notification Listeners including the System UI need permission to access the data the Uri points to. The recommended ways to do this are: 1. Store the data in your own ContentProvider, making sure that other apps have the correct permission to access your provider. The preferred mechanism for providing access is to use per-URI permissions which are temporary and only grant access to the receiving application. An easy way to create a ContentProvider like this is to use the FileProvider helper class. 2. Use the system MediaStore. The MediaStore is primarily aimed at video, audio and image MIME types, however beginning with Android 3.0 (API level 11) it can also store non-media types (see MediaStore.Files for more info). Files can be inserted into the MediaStore using scanFile() after which a content:// style Uri suitable for sharing is passed to the provided onScanCompleted() callback. Note that once added to the system MediaStore the content is accessible to any app on the device. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/core/app/NotificationCompat.MessagingStyle.Message` | this object for method chaining |