Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Message

class Message
kotlin.Any
   ↳ androidx.core.app.NotificationCompat.MessagingStyle.Message

Summary

Public constructors

<init>(text: CharSequence!, timestamp: Long, @Nullable person: Person?)

Creates a new Message with the given text, timestamp, and sender.

<init>(text: CharSequence!, timestamp: Long, sender: CharSequence!)

Constructor

Public methods

String?

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

Uri?

Get the the Uri pointing to the content of the message.

Bundle

Get the extras Bundle for this message.

Person?

Returns the Person sender of this message.

CharSequence?

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

CharSequence

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

Long

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

NotificationCompat.MessagingStyle.Message!
setData(dataMimeType: String!, dataUri: Uri!)

Sets a binary blob of data and an associated MIME type for a message.

Public constructors

<init>

Message(text: CharSequence!, timestamp: Long, @Nullable person: Person?)

Creates a new Message with the given text, timestamp, and sender.

Parameters
text CharSequence!: A CharSequence to be displayed as the message content
timestamp CharSequence!: Time at which the message arrived in ms since Unix epoch
person CharSequence!: A Person whose 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 MessagingStyle#getUserDisplayName(). A Person's key should be consistent during re-posts of the notification.

<init>

Message(text: CharSequence!, timestamp: Long, sender: CharSequence!)

Deprecated: Use the alternative constructor instead.

Constructor

Parameters
text CharSequence!: A CharSequence to be displayed as the message content
timestamp CharSequence!: Time at which the message arrived in ms since Unix epoch
sender CharSequence!: A CharSequence 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 MessagingStyle#getUserDisplayName(). Should be unique amongst all individuals in the conversation, and should be consistent during re-posts of the notification.

Public methods

getDataMimeType

@Nullable fun getDataMimeType(): String?

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

getDataUri

@Nullable fun getDataUri(): Uri?

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

getExtras

@NonNull fun getExtras(): Bundle

Get the extras Bundle for this message.

getPerson

@Nullable fun getPerson(): Person?

Returns the Person sender of this message.

getSender

@Nullable fun getSender(): CharSequence?

Deprecated: Use getPerson()

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

getText

@NonNull fun getText(): CharSequence

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

getTimestamp

fun getTimestamp(): Long

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

setData

fun setData(dataMimeType: String!, dataUri: Uri!): NotificationCompat.MessagingStyle.Message!

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
dataMimeType String!: The MIME type of the content. See for the list of supported MIME types on Android and Android Wear.
dataUri String!: The uri containing the content whose type is given by the MIME type.

  1. Notification Listeners including the System UI need permission to access the data the Uri points to. The recommended ways to do this are:
  2. 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.
  3. 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.
Return
NotificationCompat.MessagingStyle.Message!: this object for method chaining