跳到主要内容

Android 会话与消息模块

Android 端 Open_im_sdk 的会话与消息接口入参和返回 JSON 结构与 iOS 端完全一致(共享同一个 Go open_im_sdk 源码)。


1. 会话管理常用接口​

// 1. 获取全部会话列表
val allConvsJson = callIMCore { cb ->
Open_im_sdk.getAllConversationList(cb, opId())
}

// 2. 分页获取会话列表
val splitConvsJson = callIMCore { cb ->
Open_im_sdk.getConversationListSplit(cb, opId(), 0L, 50L)
}

// 3. 获取或创建单个会话 (sessionType: 1=单聊, 3=工作群)
val oneConvJson = callIMCore { cb ->
Open_im_sdk.getOneConversation(cb, opId(), 1, peerUserID)
}

// 4. 设置会话置顶 / 免打扰 / 阅后即焚
// reqJson 格式: {"isPinned":{"value":true}, "recvMsgOpt":{"value":2}}
callIMCore { cb ->
Open_im_sdk.setConversation(cb, opId(), conversationID, reqJson)
}

// 5. 标记会话已读
callIMCore { cb ->
Open_im_sdk.markConversationMessageAsRead(cb, opId(), conversationID)
}

2. 消息创建、发送与历史记录​

// 1. 同步创建文本消息 JSON
val msgJson: String = Open_im_sdk.createTextMessage(opId(), "你好,趣小界!")

// 2. 发送消息(通过 SendMsgCallBack 监听上传进度与完成结果)
Open_im_sdk.sendMessage(
object : SendMsgCallBack {
override fun onProgress(progress: Long) {
// 附件上传进度 0..100
}
override fun onSuccess(data: String?) {
// 发送成功,data 为更新了 serverMsgID 和 status=2 的 MsgStruct JSON
}
override fun onError(errCode: Int, errMsg: String?) {
// 发送失败
}
},
opId(),
msgJson,
recvID,
groupID,
offlinePushJson,
false
)

// 3. 拉取历史消息
// optionsJson: {"conversationID":"si_u1_u2","startClientMsgID":"","count":20,"viewType":0}
val historyJson = callIMCore { cb ->
Open_im_sdk.getAdvancedHistoryMessageList(cb, opId(), optionsJson)
}