浏览 SDKs · Android
平台
SDKsAndroid

发送消息

将创建好的 Message 对象发送到指定单聊或群聊会话。

复制

将构建好的 Message 对象发送到单聊或群聊中。单聊仅填写接收方用户 ID(recvUid),群聊仅填写目标群组 ID(recvGid),两者互斥,不可同时指定。通过 OnMsgSendCallback 可分别监听发送成功、失败以及大文件上传的进度反馈。

String peerUserID = "user_b";
OfflinePushInfo offlinePushInfo = new OfflinePushInfo();
offlinePushInfo.setTitle("新消息通知");
offlinePushInfo.setDesc("您有一条新消息,请点击查看");

OpenIMClient.getInstance().messageManager.sendMessage(
    new OnMsgSendCallback() {
        @Override
        public void onProgress(long progress) {
            // progress 为媒体文件上传进度(0-100)
        }

        @Override
        public void onSuccess(Message sentMessage) {
            // 发送成功,按 sentMessage.getClientMsgID() 刷新本地消息状态
        }

        @Override
        public void onError(int code, String error) {
            // 标记消息发送失败并支持重试
        }
    },
    message,
    peerUserID,
    null,
    offlinePushInfo
);

参数说明

参数类型是否必填说明
callbackOnMsgSendCallback是消息发送生命周期回调,包含进度、成功与失败处理方法。
messageMessage是待发送的消息对象,通过对应消息类型的创建方法预先生成。
recvUidString条件必填单聊接收方用户 ID。发送群聊消息时必须传 null。
recvGidString条件必填群聊目标群组 ID。发送单聊消息时必须传 null。
offlinePushInfoOfflinePushInfo否接收方处于离线状态时的推送展示信息。不需要自定义时可传 null。

返回结果

成功回调返回发送成功后的 Message 对象。其中包含服务端分配的 serverMsgID、消息发送时间戳 sendTime 以及更新后的发送状态 status。

客户端应以 clientMsgID 为标识更新本地 UI 列表中该条消息的状态(如由“发送中”变更为“已发送”)。发送成功表示当前客户端已将消息成功投递至服务端,接收端是否已接收以其接收消息事件为准。