Skip to main content

API Definition

/**
* Get messages sorted by message time in ascending order (oldest first and newest last). If messages are missing and the network is unavailable, cached local messages are returned.
* @param conversation conversation object
* @param direction retrieval direction
* @param options message-retrieval options
* @param callback callback
*/
void getMessages(Conversation conversation,
JIMConst.PullDirection direction,
GetMessageOptions options,
IGetMessagesCallbackV3 callback);

interface IGetMessagesCallbackV3 {
/**
* result callback
* @param messages message list
* @param timestamp message timestamp to use when retrieving the next batch
* @param hasMore whether more messages are available
* @param code result code; 0 indicates success. If code is nonzero and cached messages exist locally, messages contains those local messages
*/
void onGetMessages(List<Message> messages, long timestamp, boolean hasMore, int code);
}

Code Example

GetMessageOptions options = new GetMessageOptions();
options.setCount(100);
options.setStartTime(0);
Conversation conversation = new Conversation(Conversation.ConversationType.PRIVATE, "userid2");
JIM.getInstance().getMessageManager().getMessages(conversation, JIMConst.PullDirection.OLDER, options, new IMessageManager.IGetMessagesCallbackV3() {
@Override
public void onGetMessages(List<Message> messages, long timestamp, boolean hasMore, int code) {
Log.d("TAG", "messageList count is " + messages.size());
}
});