hyphenate_SDK3.0
3.8.6.1
hyphenate java IM SDK
|
继承自 com.hyphenate.chat.EMBase< T > .
类 | |
enum | EMConversationType |
enum | EMSearchDirection |
class | MessageCache |
Public 成员函数 | |
String | conversationId () |
EMConversationType | getType () |
int | getUnreadMsgCount () |
void | markAllMessagesAsRead () |
int | getAllMsgCount () |
List< EMMessage > | loadMoreMsgFromDB (String startMsgId, int pageSize) |
List< EMMessage > | loadMoreMsgFromDB (String startMsgId, int pageSize, EMSearchDirection direction) |
List< EMMessage > | searchMsgFromDB (long timeStamp, int maxCount, EMSearchDirection direction) |
List< EMMessage > | searchMsgFromDB (EMMessage.Type type, long timeStamp, int maxCount, String from, EMSearchDirection direction) |
List< EMMessage > | searchMsgFromDB (String keywords, long timeStamp, int maxCount, String from, EMSearchDirection direction) |
List< EMMessage > | searchMsgFromDB (long startTimeStamp, long endTimeStamp, int maxCount) |
List< EMMessage > | searchCustomMsgFromDB (String keywords, long timeStamp, int maxCount, String from, EMSearchDirection direction) |
EMMessage | getMessage (String messageId, boolean markAsRead) |
List< EMMessage > | loadMessages (List< String > msgIds) |
void | markMessageAsRead (String messageId) |
List< EMMessage > | getAllMessages () |
void | removeMessage (String messageId) |
EMMessage | getLastMessage () |
EMMessage | getLatestMessageFromOthers () |
void | clear () |
void | clearAllMessages () |
void | setExtField (String ext) |
String | getExtField () |
boolean | isGroup () |
boolean | insertMessage (EMMessage msg) |
boolean | appendMessage (EMMessage msg) |
boolean | updateMessage (EMMessage msg) |
String | getMessageAttachmentPath () |
静态 Public 成员函数 | |
static EMConversationType | msgType2ConversationType (String id, EMMessage.ChatType type) |
会话类,表示和一个用户/群组/聊天室的对话,包含发送和接收的消息 例如,从会话中获取未读消息数:
// conversationId可以为聊天的另一方id,群组id或者聊天室id EMConversation conversation = EMClient.getInstance().chatManager().getConversation(conversationId); int unread = conversation.getUnreadMsgCount();
boolean com.hyphenate.chat.EMConversation.appendMessage | ( | EMMessage | msg | ) |
插入一条消息到会话尾部 消息的conversationId应该和会话的conversationId一致,消息会被插入DB,并且更新会话的latestMessage等属性
msg | 消息实例 |
void com.hyphenate.chat.EMConversation.clear | ( | ) |
清除对话中的所有消息 只清除内存的,不清除db的消息 在退出会话的时候清除内存缓存,减小内存消耗
void com.hyphenate.chat.EMConversation.clearAllMessages | ( | ) |
删除会话中所有消息,同时清除内存和数据库中的消息
String com.hyphenate.chat.EMConversation.conversationId | ( | ) |
会话ID 对于单聊类型,会话ID同时也是对方用户的名称 对于群聊类型,会话ID同时也是对方群组的ID,并不同于群组的名称 对于聊天室类型,会话ID同时也是聊天室的ID,并不同于聊天室的名称 对于HelpDesk类型,会话ID与单聊类型相同,是对方用户的名称
List<EMMessage> com.hyphenate.chat.EMConversation.getAllMessages | ( | ) |
获取此conversation当前内存所有的message 如果内存中为空,再从db中加载最近的一条消息
int com.hyphenate.chat.EMConversation.getAllMsgCount | ( | ) |
获取本地存储中会话的全部消息数目
String com.hyphenate.chat.EMConversation.getExtField | ( | ) |
获取会话扩展字段 该字段只保存在本地,不进行网络同步
EMMessage com.hyphenate.chat.EMConversation.getLastMessage | ( | ) |
获取消息队列中的最后一条消息 此操作不会改变未读消息计数 优先从缓存中获取,如果缓存中没有,则从数据库中加载最近的一条消息
EMMessage com.hyphenate.chat.EMConversation.getLatestMessageFromOthers | ( | ) |
获取会话接收到的最后一条消息
EMMessage com.hyphenate.chat.EMConversation.getMessage | ( | String | messageId, |
boolean | markAsRead | ||
) |
根据messageId获取指定的消息 优先从内存中加载,如果内存中没有则从数据库中加载,并将其插入到内存中
messageId | 消息id |
markAsRead | 是否获取消息的同时标记消息为已读,如果标记为已读,则会发送已读标记到服务器 |
String com.hyphenate.chat.EMConversation.getMessageAttachmentPath | ( | ) |
返回会话对应的附件存储路径 该方法适用于清理该会话磁盘存储,不确保该路径一定存在,请在删除对应路径前加以判断,并加上异常保护
EMConversationType com.hyphenate.chat.EMConversation.getType | ( | ) |
获取会话类型
int com.hyphenate.chat.EMConversation.getUnreadMsgCount | ( | ) |
获取此对话中未读的消息数量
boolean com.hyphenate.chat.EMConversation.insertMessage | ( | EMMessage | msg | ) |
插入一条消息到本地数据库 消息的conversationId应该和会话的conversationId一致,消息会被插入DB,并且更新会话的latestMessage等属性
msg | 消息实例 |
boolean com.hyphenate.chat.EMConversation.isGroup | ( | ) |
获取是否是群组或者聊天室会话
List<EMMessage> com.hyphenate.chat.EMConversation.loadMessages | ( | List< String > | msgIds | ) |
加载一组消息 如果缓存不存在会去DB查询并加载
msgIds | 一组消息ID |
List<EMMessage> com.hyphenate.chat.EMConversation.loadMoreMsgFromDB | ( | String | startMsgId, |
int | pageSize | ||
) |
从数据库中加载更多消息 根据传入的参数从db加载startMsgId之前(存储顺序)指定数量的消息, 加载到的messages会加入到当前会话的缓存中,通过getAllMessages()将会返回所有加载的消息
startMsgId | 加载这个id之前的message,如果传入""或者null,将从最近的消息开始加载 |
pageSize | 加载多少条 |
List<EMMessage> com.hyphenate.chat.EMConversation.loadMoreMsgFromDB | ( | String | startMsgId, |
int | pageSize, | ||
EMSearchDirection | direction | ||
) |
根据传入的参数从db加载startMsgId之前(存储顺序)指定数量的message, 加载到的messages会加入到当前conversation的messages里
startMsgId | 加载这个id之前的message |
pageSize | 加载多少条 |
direction | 消息加载的方向 |
void com.hyphenate.chat.EMConversation.markAllMessagesAsRead | ( | ) |
将所有未读消息设置为已读
void com.hyphenate.chat.EMConversation.markMessageAsRead | ( | String | messageId | ) |
设置指定的消息为已读 将消息置为已读,也可用EMMessage#setUnread(boolean)
messageId | 消息ID |
|
static |
从消息类型到会话类型的转化
id | 消息Id,用来区分客服和单聊,对于其他类型,这个参数没有影响 |
type | 消息类型 |
void com.hyphenate.chat.EMConversation.removeMessage | ( | String | messageId | ) |
删除一条指定的消息 注:只会对本地数据进行操作
messageId | 待删除消息的ID |
List<EMMessage> com.hyphenate.chat.EMConversation.searchCustomMsgFromDB | ( | String | keywords, |
long | timeStamp, | ||
int | maxCount, | ||
String | from, | ||
EMSearchDirection | direction | ||
) |
根据传入的参数从本地存储中搜索自定义消息中指定数量的消息 注意:当maxCount非常大时,需要考虑内存消耗
keywords | 搜索消息中的关键词 |
timeStamp | 搜索消息的时间点 |
maxCount | 搜索结果的最大条数 |
from | 搜索来自某人的消息,也可用于搜索群组里的消息 |
List<EMMessage> com.hyphenate.chat.EMConversation.searchMsgFromDB | ( | EMMessage.Type | type, |
long | timeStamp, | ||
int | maxCount, | ||
String | from, | ||
EMSearchDirection | direction | ||
) |
根据传入的参数从本地存储中搜索指定数量的消息 注意:当maxCount非常大时,需要考虑内存消耗
type | 消息类型,文本、图片、语音等等 |
timeStamp | 搜索消息的时间点 |
maxCount | 搜索结果的最大条数 |
from | 搜索来自某人的消息,也可用于搜索群组里的消息 |
List<EMMessage> com.hyphenate.chat.EMConversation.searchMsgFromDB | ( | long | startTimeStamp, |
long | endTimeStamp, | ||
int | maxCount | ||
) |
根据传入的参数从本地存储中搜索指定数量的消息 注意:当maxCount非常大时,需要考虑内存消耗
startTimeStamp | 搜索的起始时间 |
endTimeStamp | 搜索的结束时间 |
maxCount | 搜索结果的最大条数 |
List<EMMessage> com.hyphenate.chat.EMConversation.searchMsgFromDB | ( | long | timeStamp, |
int | maxCount, | ||
EMSearchDirection | direction | ||
) |
根据传入的参数从本地存储中搜索指定数量的消息 注意:当maxCount非常大时,需要考虑内存消耗
timeStamp | 搜索消息的时间点 |
maxCount | 搜索结果的最大条数 |
List<EMMessage> com.hyphenate.chat.EMConversation.searchMsgFromDB | ( | String | keywords, |
long | timeStamp, | ||
int | maxCount, | ||
String | from, | ||
EMSearchDirection | direction | ||
) |
根据传入的参数从本地存储中搜索指定数量的消息 注意:当maxCount非常大时,需要考虑内存消耗
keywords | 搜索消息中的关键词 |
timeStamp | 搜索消息的时间点 |
maxCount | 搜索结果的最大条数 |
from | 搜索来自某人的消息,也可用于搜索群组里的消息 |
void com.hyphenate.chat.EMConversation.setExtField | ( | String | ext | ) |
设置会话扩展字段 该字段只保存在本地,不进行网络同步
ext | 会话对应扩展字段的内容 |
boolean com.hyphenate.chat.EMConversation.updateMessage | ( | EMMessage | msg | ) |
更新本地的消息 不能更新消息ID,消息更新后,会话的latestMessage等属性进行相应更新
msg | 要更新的消息 |