From 63797ea1cbb3031e2b191f48f56b58a4bafa34ff Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Thu, 21 May 2026 15:31:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(sdk-license):=20LicenseInitializerProvider?= =?UTF-8?q?=20=E8=87=AA=E5=8A=A8=E5=AE=8C=E6=88=90=E5=85=A8=E9=87=8F=20SDK?= =?UTF-8?q?=20=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ContentProvider 在 Application.onCreate() 之前运行,读取 assets/xuqm/license.xuqm 后直接调用 XuqmSDK.initialize()。 app 端只需放入 license 文件,无需任何初始化代码。 Co-Authored-By: Claude Sonnet 4.6 --- .../license/internal/LicenseInitializerProvider.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sdk-license/src/main/java/com/xuqm/sdk/license/internal/LicenseInitializerProvider.kt b/sdk-license/src/main/java/com/xuqm/sdk/license/internal/LicenseInitializerProvider.kt index c0f29c6..e65964b 100644 --- a/sdk-license/src/main/java/com/xuqm/sdk/license/internal/LicenseInitializerProvider.kt +++ b/sdk-license/src/main/java/com/xuqm/sdk/license/internal/LicenseInitializerProvider.kt @@ -4,10 +4,20 @@ import android.content.ContentProvider import android.content.ContentValues import android.database.Cursor import android.net.Uri +import com.xuqm.sdk.XuqmSDK class LicenseInitializerProvider : ContentProvider() { override fun onCreate(): Boolean { - context?.let(LicenseContextHolder::init) + val ctx = context ?: return true + LicenseContextHolder.init(ctx) + // Auto-initialize the full SDK if a license file is present in assets/xuqm/. + // Runs before Application.onCreate(), so no app-level init code is needed. + runCatching { + val licenseFile = LicenseFileReader.read(ctx) ?: return@runCatching + val appKey = licenseFile.appKey.takeIf { it.isNotBlank() } ?: return@runCatching + val serverUrl = licenseFile.serverUrl?.takeIf { it.isNotBlank() } + XuqmSDK.initialize(ctx, appKey, serverUrl) + } return true }