XuqmGroup-AndroidSDK/sdk-im
XuqmGroup 6d18af496b fix: 移除库模块 isMinifyEnabled 修复 Duplicate class 冲突
Android 库模块开启 isMinifyEnabled=true 时,R8 各自独立混淆,
将内部类重命名为 a.a / a.b 等短名打进 AAR;多个 AAR 合并到 App
时产生 Duplicate class 冲突。

修复:删除全部 7 个库模块 buildTypes.release 中的 isMinifyEnabled,
混淆由 App 的 R8 统一完成。将 proguard-rules.pro 中的保留规则
(manifest 注册类、反射调用入口、dontwarn)合并进各模块的
consumer-rules.pro 随 AAR 打包。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 14:57:22 +08:00
..
src/main/java/com/xuqm/sdk/im docs(sdk): 更新跨平台SDK设计规范至v1.1版本 2026-06-15 15:51:58 +08:00
build.gradle.kts fix: 移除库模块 isMinifyEnabled 修复 Duplicate class 冲突 2026-06-23 14:57:22 +08:00
consumer-rules.pro docs(test): 更新测试报告和文档 2026-05-05 16:06:32 +08:00
proguard-rules.pro fix: 移除库模块 isMinifyEnabled 修复 Duplicate class 冲突 2026-06-23 14:57:22 +08:00
README.md docs: 添加 CLAUDE.md + 各 module README + sdk-webview JSBridge 补全 2026-06-16 12:14:54 +08:00

sdk-im

XuqmGroup Android SDK IM 模块。提供 WebSocket 实时通信、消息收发、群组管理。

依赖

implementation("com.xuqm:sdk-im:VERSION")
implementation("com.xuqm:sdk-core:VERSION")  // 必须

使用

无需手动初始化。 XuqmSDK.login(userId, userSig) 成功后自动完成 IM 登录。

// ImClient 直接使用
val imClient = ImClient()
imClient.listener = object : ImEventListener {
    override fun onConnected() { }
    override fun onMessage(msg: ImMessage) { }
    override fun onRevoke(msgId: String, operatorId: String) { }
}

imClient.connect()
imClient.send(SendMessageParams(
    toId = "user_002",
    chatType = ChatType.SINGLE,
    msgType = MsgType.TEXT,
    content = "Hello!"
))

API

ImClient

API 说明
imClient.connect() 连接 WebSocket
imClient.disconnect() 断开连接
imClient.send(params) 发送消息
imClient.revoke(msgId) 撤回消息
imClient.listener 事件监听器

消息类型

TEXT / IMAGE / VIDEO / AUDIO / FILE / CUSTOM / LOCATION / NOTIFY / RICH_TEXT / CALL_AUDIO / CALL_VIDEO / FORWARD / QUOTE / MERGE

自动重连

断线后指数退避重连,初始间隔 3 秒,最大间隔 30 秒。调用 disconnect() 后停止。

群聊

支持 @userId 提及,写入 mentionedUserIds。群组管理 API 包含:创建、解散、禁言、设置管理员、转让群主。