From 5b21a7a52e701e1e03ca8eebb643316f35b03918 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Wed, 17 Jun 2026 12:22:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(sdk-update):=20=E6=9C=8D=E5=8A=A1=E6=9C=AA?= =?UTF-8?q?=E5=BC=80=E9=80=9A=E6=97=B6=E8=BF=94=E5=9B=9E=20serviceActivate?= =?UTF-8?q?d=3Dfalse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - UpdateInfo: 新增 serviceActivated: Boolean = true 字段 - UpdateSDK.checkAppUpdate: 服务端返回 code=40404 时返回 UpdateInfo(serviceActivated=false) - UpdateInfoDto: 保持仅持有业务字段(无 serviceActivated),由 checkAppUpdate 根据响应 code 注入 Co-Authored-By: Claude Sonnet 4.6 --- sdk-update/src/main/java/com/xuqm/sdk/update/UpdateSDK.kt | 7 ++++++- .../src/main/java/com/xuqm/sdk/update/model/UpdateInfo.kt | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/sdk-update/src/main/java/com/xuqm/sdk/update/UpdateSDK.kt b/sdk-update/src/main/java/com/xuqm/sdk/update/UpdateSDK.kt index 33d6153..cae61d2 100644 --- a/sdk-update/src/main/java/com/xuqm/sdk/update/UpdateSDK.kt +++ b/sdk-update/src/main/java/com/xuqm/sdk/update/UpdateSDK.kt @@ -184,7 +184,12 @@ object UpdateSDK { } runCatching { - api.checkUpdate(XuqmSDK.appKey, "ANDROID", versionCode, userId).data?.toUpdateInfo()?.let { info -> + val response = api.checkUpdate(XuqmSDK.appKey, "ANDROID", versionCode, userId) + if (response.code == 40404) { + Log.w("UpdateSDK", "checkUpdate: 更新服务未开通 (code=40404) [appKey=${XuqmSDK.appKey}]") + return@withContext UpdateInfo(needsUpdate = false, serviceActivated = false) + } + response.data?.toUpdateInfo()?.let { info -> val normalized = info.copy(downloadUrl = normalizeDownloadUrl(info.downloadUrl) ?: info.downloadUrl) val afterIgnore = if (!bypassIgnore && normalized.needsUpdate && !normalized.forceUpdate && isVersionIgnored(context, normalized.versionCode) diff --git a/sdk-update/src/main/java/com/xuqm/sdk/update/model/UpdateInfo.kt b/sdk-update/src/main/java/com/xuqm/sdk/update/model/UpdateInfo.kt index 3381246..9a62368 100644 --- a/sdk-update/src/main/java/com/xuqm/sdk/update/model/UpdateInfo.kt +++ b/sdk-update/src/main/java/com/xuqm/sdk/update/model/UpdateInfo.kt @@ -15,4 +15,6 @@ data class UpdateInfo( val alreadyDownloaded: Boolean = false, /** APK 文件的 SHA-256 哈希值,用于校验本地文件完整性;服务端未返回时为 null */ val apkHash: String? = null, + /** 更新服务是否已开通;false 表示该 appKey 在平台上尚未配置任何版本,服务未开通 */ + val serviceActivated: Boolean = true, )