帮你快速理解、总结文档立即下载

Android UIKit

最近更新时间:2026-05-06 17:29:22
我的收藏

准备工作

1. 您需要一个 Android 应用,这个应用可以是您现有的工程,也可以是您新建的一个空的工程。
2. 请确保您的 Android 应用目标为 API 级别 21 (Android 5.0) 或更高版本。

操作步骤

步骤1:添加仓库和依赖

1. 从 cnb 根目录下 android 目录下载 本地 Maven repo 仓库目录,放到项目中(例如 libs/repo):
your-project/
├── app/
├── libs/
│ └── repo/ ← 将下载的 repo 目录放到这里
├── build.gradle.kts
└── settings.gradle.kts
2. 在 settings.gradle.kts 中添加仓库:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
// SMH UIKit 本地 Maven 仓库
maven { url = uri("${rootProject.projectDir}/libs/repo") }
// 运行时依赖仓库(必须)
maven { url = uri("https://mirrors.tencent.com/nexus/repository/maven-tencent/") }
}
}
3. 在 App 模块的 build.gradle.kts 中添加:
说明:
<version> 请根据具体的版本号进行替换。
dependencies {
implementation("com.qcloud.cos:smh-ui-kit:<version>")
}

步骤2:打开文件管理页面

参考如下代码即可打开文件管理页面。
import com.tencent.qcloud.smh.uikit.internal.SmhUiKit
import com.tencent.qcloud.smh.uikit.smh.AccessToken
import com.tencent.qcloud.smh.uikit.smh.SmhAccessTokenProvider
import com.tencent.qcloud.smh.uikit.smh.SmhConfig

// 1. 配置
val smhConfig = SmhConfig(
host = "https://xxx.api.tencentsmh.cn",
libraryId = "your-library-id",
spaceId = "your-space-id",
downloadPath = getExternalFilesDir("SMHDownload")?.absolutePath ?: filesDir.absolutePath + "/SMHDownload",
identifier = "identifier"
)

// 2. 实现 Token 提供者
val tokenProvider = object : SmhAccessTokenProvider {
override suspend fun getAccessToken(): AccessToken {
// 从您的服务端获取 Token(在后台线程调用,可进行网络请求)
val result = YourApi.getSmhToken()
return AccessToken(
token = result.token,
startTime = System.currentTimeMillis(),
expiresIn = result.expiresIn // 有效时长(秒)
)
}
}

// 3. 创建 Fragment 并添加到 Activity
val fragment = SmhUiKit.newFragment(smhConfig, tokenProvider)
supportFragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.addToBackStack(null)
.commit()

SmhConfig 参数

参数
说明
类型
是否必填
host
SMH API 地址,如 https://xxx.api.tencentsmh.cn
String
是
libraryId
媒体库 ID
String
是
spaceId
空间 ID
String
是
downloadPath
默认下载根路径
String
是
identifier
业务层标识,一般用于不同业务的 SDK 层数据隔离
String
是
path
初始 space 目录路径,默认根目录
String
否
userId
用户 ID(SMH 服务端概念)
String
否

AccessToken 参数

参数
说明
类型
是否必填
token
访问凭证
String
是
startTime
Token 起始时间(毫秒时间戳)
Long
是
expiresIn
有效时长(秒)
Int
是
说明:
startTime 和 expiresIn 用于描述 Token 有效期。SDK 内部会优先复用未过期 Token,接入方无需额外管理 Token 生命周期。

权限说明

SDK 已内置声明网络和存储权限,会自动合并到您的应用中。如果 targetSdk >= 33,建议额外声明:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />