Browse SDKs · Android
Platform
SDKsAndroid

Find messages by ID

Use findMessageList to retrieve message records with SearchParams.

Copy

Retrieve specific message records using conversation IDs and client message IDs (clientMsgID). This is typically used when handling notification clicks, business deep links, or specific read-receipt updates where exact message identifiers are known.

Code example

SearchParams params = new SearchParams();
params.setConversationID("si_user_a_user_b");
params.setClientMsgIDList(Arrays.asList("msg_001", "msg_002"));

List<SearchParams> searchParamsList = Collections.singletonList(params);

OpenIMClient.getInstance().messageManager.findMessageList(
    new OnBase<SearchResult>() {
        @Override
        public void onSuccess(SearchResult result) {
            // result contains matching message records
        }

        @Override
        public void onError(int code, String error) {
            // Failed to find messages
        }
    },
    searchParamsList
);

Parameters

ParameterTypeRequiredDescription
baseOnBase<SearchResult>YesCallback handler for the asynchronous request.
searchParamsList<SearchParams>YesList of query parameter objects. Each SearchParams specifies a conversationID and a list of target clientMsgIDList values.

Return value

Upon success, onSuccess returns a SearchResult object containing matching messages across the specified conversations. The client should locate or update local records using clientMsgID as the unique key.

State changes after the call

  1. Snapshot lookup: This is a read-only query that loads matching message snapshots without altering message delivery states.
  2. Text search alternative: To search message content by keyword instead of exact ID, see Search messages.