外观
Android 原生接入
Android IM SDK 使用 C++ 内核与 Kotlin/Java 公共封装,界面使用原生 View/Fragment。IM SDK 不依赖 Flutter、UIKit 或音视频媒体组件;音视频通过独立 Call 组件接入。
版本与交付
密信 IM 开发版 5.0 的 Android 原生组件面向 Android API 24 及以上。授权包提供配套的 AAR、原生内核、资源和依赖清单,按目标设备 ABI 集成。
按授权包中的本地仓库或制品说明接入,将配套内核、界面资源和运行依赖一起集成。
连接已有业务账号
宿主准备 MixinImConfig、MixinImSession 与负责续签的 MixinImSessionProvider。配置中的地址属于客户部署环境,Session 来自客户业务认证链路。
以下片段放在宿主的连接流程中,context、config、session、sessionProvider、showError 和 openMessaging 由应用提供:
kotlin
import com.mixinim.sdk.MixinImSdk
val sdk = MixinImSdk(context, sessionProvider)
sdk.initialize(config) { _, initError ->
if (initError != null) {
showError(initError)
} else {
sdk.connect(session, { _, connectError ->
if (connectError != null) showError(connectError)
else openMessaging(sdk)
})
}
}公共回调在主线程交付。应用应持有 SDK 实例,连接失败后按错误类型处理,不能反复创建实例争用同一消息库。初始化完成不代表已登录;connect 成功才表示 IM 协议登录完成。
使用公开管理器
| 入口 | 作用 |
|---|---|
conversationManager、messageManager | 会话、历史、发送与消息操作 |
contacts、groups | 联系人、群信息及治理 |
groupApplications、pinnedMessages | 入群申请与置顶消息 |
attachments | 附件上传与授权访问 |
subscribe(...) | 订阅事件,返回可独立关闭的订阅 |
sendMessage 完成表示已进入持久待发流程,后续事件反映确认或失败。服务端确认与用户已读分别处理,参见发送状态。
嵌入默认界面
宿主 Activity 或父 Fragment 实现 MixinImUIKitHost,注入 SDK、当前用户和打开会话的回调。可嵌入 MixinImConversationListFragment、MixinImChatFragment.newInstance(conversation),也可直接组合对应 View。
SDK 生命周期由宿主管理,页面移除只取消自己的订阅。需要把聊天设置、搜索和群管理留在应用页面栈时,按 UIKit 的 pagePresenter 接入宿主导航。
系统与媒体配置
正式 Manifest 需声明网络权限。相册、拍摄、录音、文件访问和通知按实际功能配置,UI入口与权限处理应一致;录音与通话之间还要协调音频占用。Call 接入需要配套媒体组件、服务和平台设置。
本地存储可选择默认 SQLite 或配套 SQLCipher 制品。使用 SQLCipher 时配置安全密钥提供方,详见安全配置。