- 实现了聊天消息发送功能,支持文本、图片、视频、音频、文件等多种消息类型 - 集成了文件上传下载功能,支持多媒体文件的传输和管理 - 添加了群组管理功能,包括创建群组、成员管理、权限控制等操作 - 实现了好友系统,支持好友添加、删除、分组等功能 - 集成了黑名单管理,提供用户屏蔽和解除屏蔽功能 - 添加了会话管理功能,支持对话列表、未读消息统计等 - 实现了历史消息查询和搜索功能 - 添加了实时连接状态管理和自动重连机制
3.3 KiB
3.3 KiB
Android 版本更新接入指南
模块:com.xuqm:sdk-update · 功能:App 版本检查、下载安装
1. 添加依赖
// app/build.gradle.kts
dependencies {
implementation("com.xuqm:sdk-update:0.4.0")
}
2. 检查更新
import com.xuqm.sdk.update.UpdateSDK
// 在协程中调用
lifecycleScope.launch {
val update = UpdateSDK.checkAppUpdate(context)
if (update?.needsUpdate == true) {
println("发现新版本: ${update.versionName}")
println("更新日志: ${update.changeLog}")
println("下载地址: ${update.downloadUrl}")
if (update.forceUpdate == true) {
// 强制更新:必须升级后才能使用
showForceUpdateDialog(update)
} else {
// 可选更新:提示用户
showOptionalUpdateDialog(update)
}
}
}
3. 下载并安装
lifecycleScope.launch {
UpdateSDK.downloadAndInstall(context, downloadUrl) { progress ->
// 更新下载进度 0-100
updateProgressBar(progress)
}
}
downloadAndInstall 内部会:
- 下载 APK 到外部存储目录
- 通过
FileProvider获取文件 URI - 启动系统安装界面
需提前配置 FileProvider:
<!-- AndroidManifest.xml -->
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<!-- res/xml/file_paths.xml -->
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-files-path name="updates" path="." />
</paths>
4. 强制更新处理
当服务端返回 forceUpdate = true 时,建议业务层:
- 弹出不可取消的对话框
- 只允许用户点击「立即更新」
- 下载完成后自动调用安装
fun showForceUpdateDialog(update: UpdateInfo) {
AlertDialog.Builder(context)
.setTitle("发现重要更新")
.setMessage("当前版本已不可用,请升级至 ${update.versionName}")
.setCancelable(false)
.setPositiveButton("立即更新") { _, _ ->
lifecycleScope.launch {
UpdateSDK.downloadAndInstall(context, update.downloadUrl!!) { progress ->
// 显示下载进度
}
}
}
.show()
}
5. 多模块统一登录
Update 模块与 IM、Push 模块共享同一套登录态:
XuqmSDK.login(userId = "user_001", userSig = "jwt_token")
// UpdateSDK 在 checkAppUpdate 时自动携带 appKey,无需额外登录操作
6. 一键打包上传
SDK 提供 xuqmRelease Gradle 任务,可一键完成 Release 构建并上传至 XuqmGroup 版本管理服务:
./gradlew xuqmRelease
任务执行流程:
- 执行
assembleRelease构建 Release APK - 自动提取版本号、versionCode、更新日志
- 上传 APK 到 XuqmGroup 后台
- 返回发布结果
如需自定义配置,在 app/build.gradle.kts 中添加:
xuqmRelease {
releaseNotesFile = file("CHANGELOG.md")
forceUpdate = false
}