Skip to main content
Version: v1.2.0

初始化与鉴权

初始化与鉴权

TmkTranslationSDK

Android SDK 入口是 Kotlin object:

TmkTranslationSDK

sdkVersion

获取当前 SDK 版本号,返回不带前缀的语义化版本字符串(如 1.2.0)。该属性为静态只读,无需初始化即可读取。

@JvmStatic
val sdkVersion: String

示例:

val version = TmkTranslationSDK.sdkVersion // "1.2.0"

Java 调用:

String version = TmkTranslationSDK.getSdkVersion();

sdkInit(context, config)

用于初始化 SDK 全局配置。

fun sdkInit(context: Context, config: TmkTransGlobalConfig)

参数说明:

参数说明
context建议传入 ApplicationContext,SDK 内部会保存 application context
configSDK 全局配置对象

行为说明:

  • 初始化鉴权、诊断日志、MMKV 和埋点基础设施。

  • 不会自动触发鉴权。

  • 调用 destroy() 后,如需继续使用,必须重新调用 sdkInit(context, config)

示例:

val globalConfig = TmkTransGlobalConfig.Builder()
.setAuth("your_app_id", "your_app_secret")
.setDiagnosisEnabled(true)
.setDiagnosisConsoleEnabled(false)
.build()

TmkTranslationSDK.sdkInit(applicationContext, globalConfig)

verifyAuth(callback)

执行在线/离线鉴权。

fun verifyAuth(callback: AuthCallback)

回调说明:

interface AuthCallback {
fun onSuccess()
fun onError(errorId: Int, e: Exception)
}

行为说明:

  • 首次调用前必须完成 sdkInit(context, config)

  • 在线翻译必须先鉴权成功。

  • verifyAuth(callback) 内部会先执行在线鉴权;在线鉴权成功后,如果服务端开启离线能力,会继续尝试 License 获取和离线鉴权,用于记录离线支持状态。

  • 对齐 iOS:最终 onSuccess/onError 只由在线鉴权结果决定;离线开关关闭、License 获取失败或离线 License 鉴权失败都不会导致本次 verifyAuth(callback) 失败,但会影响离线能力状态。

  • 并发调用 verifyAuth(callback) 时,SDK 会合并同一轮鉴权请求,并把结果回调给所有等待方。

示例:

TmkTranslationSDK.verifyAuth(object : AuthCallback {
override fun onSuccess() {
val offlineEnabled = TmkTranslationSDK.isOfflineTranslationSupported()
}

override fun onError(errorId: Int, e: Exception) {
// errorId 通常对应 TmkTranslationException.ErrorCodes
// 如需后台/native 原始错误码,可读取 (e as? TmkTranslationException)?.actualErrorCode
}
})

isOfflineTranslationSupported()

查询当前鉴权上下文是否支持离线翻译。

fun isOfflineTranslationSupported(): Boolean

返回值:

  • true:当前鉴权上下文支持离线翻译。

  • false:当前账号未开通离线翻译能力,或尚未完成鉴权。

注意
  • 建议在 verifyAuth(callback) 成功后再调用。
  • verifyAuth(callback) 成功仅表示在线鉴权成功;如果后台未开启离线能力,当前接口仍会返回 false

全局配置 TmkTransGlobalConfig

TmkTransGlobalConfig.Builder

Builder 方法说明
setAuth(appId, secret)设置业务鉴权凭据
setOnlineAuthContext(tenantId, externalUserId, installId)设置在线鉴权扩展上下文,externalUserId 优先级高于 installId
setDiagnosisEnabled(enabled)是否启用 SDK 诊断日志,默认 true
setDiagnosisConsoleEnabled(enabled)是否同步输出诊断日志到控制台,默认 true
setNetworkEnvironment(environment)设置预置网络环境
setNetworkBaseURL(url)设置自定义服务端地址,优先级高于预置环境
setNetworkTimeout(seconds)设置所有网络请求统一超时(秒),作用于鉴权、建房、建通道等;小于等于 0 时忽略,回退默认 15 秒
build()构建 TmkTransGlobalConfig

TmkTranslationNetworkEnvironment

SDK 内置环境枚举:

enum class TmkTranslationNetworkEnvironment {
DEV,
TEST,
PRE
}
建议
  • DEV 仅用于开发调试,对外接入请优先使用 TEST 或 Timekettle 指定环境。
  • setNetworkBaseURL(url) 一般只用于联调或特殊接入,不建议线上随意切换。
  • 自定义地址必须是合法 http 或 https URL;SDK 会在构建配置时做基础格式归一。

凭据说明

凭据安全

appId / clientSecret 是业务鉴权凭据,建议通过 Gradle properties、环境变量或 CI Secret 注入,不要写入公开仓库。

val appId = BuildConfig.TMK_APP_ID
val appSecret = BuildConfig.TMK_APP_SECRET

val config = TmkTransGlobalConfig.Builder()
.setAuth(appId, appSecret)
.setOnlineAuthContext(
tenantId = "your_tenant_id",
externalUserId = "your_external_user_id",
installId = "your_install_id"
)
.setNetworkEnvironment(TmkTranslationNetworkEnvironment.TEST)
.build()

说明:

  • tenantIdexternalUserIdinstallId 均为可选扩展参数,按 Timekettle 为接入方分配的鉴权策略填写。

  • 同时传入 externalUserIdinstallId 时,SDK 使用 externalUserId 作为业务用户维度,忽略 installId