Android SDK
原生 Android SDK(Kotlin / Java),負責登入、長連線與重連、多端同步、本地資料庫和訊息傳送佇列;離線推送、音視訊通話、Coil 圖片載入按需新增。

| 專案 | 說明 |
|---|---|
| 當前版本 | 2.0.1(版本與支援狀態) |
| 執行系統 | Android 7.0(API 24)以上 |
| 編譯要求 | compileSdk 35 以上,Java / Kotlin 目標 JVM 11 |
| 獲取方式 | 下載原始碼包,本地構建 Maven 倉庫(尚未釋出到公共 Maven) |
| 介面 | 不含聊天介面元件,介面由你的 App 實現;可參考示例 App |
安裝
- 下載並解壓原始碼包,在根目錄執行
make sdk-android-publish-local,把生成的sdk/android/build/maven-repo複製到你的工程,命名為local-im-maven。 - 在
settings.gradle.kts中加入倉庫:
kotlin
// Gradle 配置,不是 App 运行时代码。
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url = uri(rootDir.resolve("local-im-maven")) }
// 仅接入 im-call 时需要。
maven("https://jitpack.io") {
content { includeGroup("com.github.davidliu") }
}
}
}- 在 App 的
build.gradle.kts中加入依賴:
kotlin
// Gradle 配置。
android {
defaultConfig { minSdk = 24 }
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
dependencies {
implementation(platform("com.deeprespond.im:im-bom:2.0.1"))
implementation("com.deeprespond.im:im")
// 按需选择:
implementation("com.deeprespond.im:im-push")
implementation("com.deeprespond.im:im-call")
implementation("com.deeprespond.im:im-coil")
}Kotlin 的 jvmTarget 同樣設為 11。各模組用 BOM 對齊版本,不要混用不同版本。
最小示例
登入並給 bob 發一條訊息:
kotlin
import com.deeprespond.im.*
val im = DRClient.initialize(context, DRClientOptions(
appKey = "org#app",
apiUrl = "https://api.example.com",
))
im.auth.awaitRestored()
if (im.auth.currentUser == null) {
im.auth.loginWithTicket(ticket) // 业务服务端签发的登录凭证
}
im.connection.waitUntilReady()
im.messages.send(SendTarget.User("bob"), OutgoingContent.Text("你好"))完整的第一個頁面(會話、訊息列表、退出)見快速整合。
能做什麼
| 功能 | 文件 |
|---|---|
| 初始化、登入、連線狀態 | 初始化、登入與連線 |
| 會話列表、未讀數、置頂、草稿 | 會話 |
| 傳送、撤回、回應、已讀回執、搜尋 | 訊息 |
| 使用者資料、好友、線上狀態 | 使用者、好友與線上狀態 |
| 群組、聊天室 | 群組、聊天室 |
| 圖片、檔案、錄音 | 檔案、圖片與錄音 |
| 語音、視訊通話,獨立 RTC 頻道 | 音視訊通話、頻道接入 |
| AI 機器人的流式回覆 | AI 回覆 |
| FCM 與國內廠商推送、免打擾、舉報 | 離線推送、提醒、免打擾與舉報 |
| 事件、錯誤、介面生命週期 | 事件與錯誤處理、介面與生命週期 |
| Java 呼叫、全部介面 | Java 接入、介面參考、資料型別 |
模組
| 製品 | 用途 | 什麼時候需要 |
|---|---|---|
im | 客戶端、安全儲存、資料庫、檔案與媒體處理、錄音 | 總是需要 |
im-push | FCM、通知、角標 | 需要離線推送 |
im-push-huawei 等 6 個 | 華為、榮耀、小米、OPPO、vivo、魅族通道 | 在中國大陸釋出 |
im-call | LiveKit 音影片、系統來電介面 | 需要通話 |
im-coil | Coil 3 圖片載入 | 用 Coil 顯示圖片 |
im-bom | 統一各模組版本 | 總是需要 |
Java 門面隨製品提供,不需要配置 KSP。
常見問題
| 現象 | 檢查 |
|---|---|
| Gradle 找不到製品 | 先構建並複製 maven-repo,並在 dependencyResolutionManagement 中宣告倉庫 |
| Kotlin 後設資料或 JVM 目標不相容 | Java 與 Kotlin 都設為 JVM 11,Kotlin 2.4、AGP 9.1 已驗證 |
| 依賴要求更高的 compileSdk | minSdk 是執行要求,compileSdk 至少 35 |
| 廠商通道類找不到 | 加入對應的 im-push-* 模組和廠商的依賴 |
calls.supported 為 false | 檢查是否加入了 im-call,以及媒體服務配置 |
| Release 包行為不同 | 製品自帶 ProGuard 規則;啟用 R8 後用正式包再驗證一次 |
下一步
- 快速整合:從初始化到第一個聊天頁面。
- Demo 執行指南與下載:可直接執行的完整示例。
- 版本與支援狀態:當前版本、已驗證的環境和已知限制。
