Package io.rong.imlib.model

## Class MessageContent

- All Implemented Interfaces:

      public abstract class MessageContent

  消息基类。

  定义了消息对象和消息数据之间互相转换的方法。

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `public UserInfo` | `userInfo` |
    `public MentionedInfo` | `mentionedInfo` |
    `public boolean` | `isDestruct` |
    `public long` | `destructTime` |
    `public MessageAuditInfo` | `auditInfo` |
    `public Array<byte>` | `rawJsonData` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MessageContent(Array<byte> data)` | 从消息数据反序列化为本地消息对象，定义新消息对象时必须定义此构造函数。

  - ### Enum Constant Summary

    Enum Constants
    Enum Constant | Description
    --- | ---

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `UserInfo` | `getUserInfo()` | 获取用户信息
    `void` | `setUserInfo(UserInfo info)` | 设置用户信息
    `MentionedInfo` | `getMentionedInfo()` | 获取 @ 用户信息
    `void` | `setMentionedInfo(MentionedInfo info)` | 设置 @ 用户信息
    `boolean` | `isDestruct()` | 是否为计时销毁消息
    `void` | `setDestruct(boolean destruct)` | 设置是否为计时销毁消息
    `long` | `getDestructTime()` | 获取计时销毁时间，如果 isDestruct 为 false，则在消息为已读状态后，经过 destructTime 时间后销毁。
    `void` | `setDestructTime(long destructTime)` | 设置计时销毁时间，如果 isDestruct 为 false，则在消息为已读状态后，经过 destructTime 时间后销毁。
    `MessageAuditInfo` | `getAuditInfo()` | 获取消息送审配置
    `void` | `setAuditInfo(MessageAuditInfo auditInfo)` | 设置消息送审配置
    `Array<byte>` | `getRawJsonData()` | 获取消息原始二进制数据，仅 IPC 进程中有效，主进程中无效
    `void` | `setRawJsonData(Array<byte> rawJsonData)` | 设置消息原始二进制数据，仅 IPC 进程中有效，主进程中无效
    `abstract Array<byte>` | `encode()` | 将本地消息对象序列化为消息数据。
    `JSONObject` | `getBaseJsonObject()` | 将基类的 阅后即焚字段，@ 信息字段，用户信息字段，extra 字段 转成 JSONObject
    `void` | `parseBaseJsonObject(JSONObject jsonObject)` | 将 JSONObject 中的 阅后即焚字段，@ 信息字段，用户信息字段，extra 字段 解析到消息体
    `void` | `writeToBaseInfoParcel(Parcel dest)` | 将基类的中的 阅后即焚字段，@ 信息字段，用户信息字段，extra 字段 数据写入外部提供的 Parcel 中。
    `void` | `readFromBaseInfoParcel(Parcel in)` |
    `JSONObject` | `getJSONDestructInfo()` |
    `void` | `parseJsonToDestructInfo(JSONObject jsonObject)` |
    `JSONObject` | `getJSONUserInfo()` |
    `UserInfo` | `parseJsonToUserInfo(JSONObject jsonObj)` | 解析 user jsonObj
    `List<String>` | `getSearchableWord()` | 返回消息体内可搜索的内容。 如果开发者想要实现自定义消息内容被搜索到,需要实现此方法,并返回可被搜索的内容。
    `String` | `getExtra()` | 获取消息扩展信息
    `void` | `setExtra(String extra)` | 设置消息扩展信息

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### MessageContent

          MessageContent(Array<byte> data)

      从消息数据反序列化为本地消息对象，定义新消息对象时必须定义此构造函数。
      Parameters:
        `data` - 消息数据。

  - ### Method Detail

    - #### getUserInfo

           UserInfo getUserInfo()

      获取用户信息

      Returns:

        用户信息

    - #### setUserInfo

           void setUserInfo(UserInfo info)

      设置用户信息

      Parameters:
        `info` - 用户信息

    - #### getMentionedInfo

           MentionedInfo getMentionedInfo()

      获取 @ 用户信息

      Returns:

        `@ 用户信息`

    - #### setMentionedInfo

           void setMentionedInfo(MentionedInfo info)

      设置 @ 用户信息

      Parameters:
        `info` - `@ 用户信息`

    - #### isDestruct

           boolean isDestruct()

      是否为计时销毁消息

      Returns:

        是否为计时销毁消息

    - #### setDestruct

           void setDestruct(boolean destruct)

      设置是否为计时销毁消息

      Parameters:
        `destruct` - 是否为计时销毁消息

    - #### getDestructTime

           long getDestructTime()

      获取计时销毁时间，如果 isDestruct 为 false，则在消息为已读状态后，经过 destructTime 时间后销毁。

      Returns:

        计时销毁时间，如果 isDestruct 为 false，则在消息为已读状态后，经过 destructTime 时间后销毁。

    - #### setDestructTime

           void setDestructTime(long destructTime)

      设置计时销毁时间，如果 isDestruct 为 false，则在消息为已读状态后，经过 destructTime 时间后销毁。

      Parameters:
        `destructTime` - 计时销毁时间，如果 isDestruct 为 false，则在消息为已读状态后，经过 destructTime 时间后销毁。

    - #### getAuditInfo

           MessageAuditInfo getAuditInfo()

      获取消息送审配置

      Returns:

        消息送审配置

    - #### setAuditInfo

           void setAuditInfo(MessageAuditInfo auditInfo)

      设置消息送审配置

      Parameters:
        `auditInfo` - 消息送审配置

    - #### getRawJsonData

           Array<byte> getRawJsonData()

      获取消息原始二进制数据，仅 IPC 进程中有效，主进程中无效

      Returns:

        二进制数据

    - #### setRawJsonData

           void setRawJsonData(Array<byte> rawJsonData)

      设置消息原始二进制数据，仅 IPC 进程中有效，主进程中无效

      Parameters:
        `rawJsonData` - 二进制数据

    - #### encode

           abstract Array<byte> encode()

      将本地消息对象序列化为消息数据。

      Returns:

        消息数据。

    - #### getBaseJsonObject

           JSONObject getBaseJsonObject()

      将基类的 阅后即焚字段，@ 信息字段，用户信息字段，extra 字段 转成 JSONObject

      Returns:

        包含上述字段的 JSONObject

    - #### parseBaseJsonObject

           void parseBaseJsonObject(JSONObject jsonObject)

      将 JSONObject 中的 阅后即焚字段，@ 信息字段，用户信息字段，extra 字段 解析到消息体

      Parameters:
        `jsonObject` - 包含上述字段的 JSONObject

    - #### writeToBaseInfoParcel

           void writeToBaseInfoParcel(Parcel dest)

      将基类的中的 阅后即焚字段，@ 信息字段，用户信息字段，extra 字段 数据写入外部提供的 Parcel 中。

      Parameters:
        `dest` - 对象被写入的 Parcel。

    - #### readFromBaseInfoParcel

           void readFromBaseInfoParcel(Parcel in)

      Parameters:
        `in` - 初始化基类的中的 阅后即焚字段，@ 信息字段，用户信息字段，extra 字段传入的 Parcel。

    - #### getJSONDestructInfo

           JSONObject getJSONDestructInfo()

    - #### parseJsonToDestructInfo

           void parseJsonToDestructInfo(JSONObject jsonObject)

    - #### getJSONUserInfo

           JSONObject getJSONUserInfo()

    - #### parseJsonToUserInfo

           UserInfo parseJsonToUserInfo(JSONObject jsonObj)

      解析 user jsonObj

      Parameters:
        `jsonObj` - user 的 json

    - #### getSearchableWord

           List<String> getSearchableWord()

      返回消息体内可搜索的内容。 如果开发者想要实现自定义消息内容被搜索到,需要实现此方法,并返回可被搜索的内容。

      Returns:

        可搜索的内容;如果消息包含多个字段,可将每个字段填充到 List 中;比如图文消息的 title 和 summary。

    - #### getExtra

           String getExtra()

      获取消息扩展信息

      Returns:

        扩展信息

    - #### setExtra

           void setExtra(String extra)

      设置消息扩展信息

      Parameters:
        `extra` - 扩展信息