Web 内核

最近更新时间:2025-12-09 14:43:52

我的收藏

开发环境要求

Android Studio 3.0+
Android 6.0(23)及以上系统

前提条件

您已 注册腾讯云 账号,并完成 实名认证 。

操作步骤

步骤一:创建新的应用

1. 登录 实时互动-教育版 控制台,进入左侧导航栏的概览,选择新建应用
2. 若尚未创建应用,则默认进入“创建应用”界面,输入应用名称,例如 TestLCIC。

若您已创建应用,可前往应用管理中,选择使用已有应用即可。

说明:
移动端需要购买旗舰版或企业尊享版后方可接入。若需创建商用应用,可根据业务需求在 购买页 创建对应版本的应用。
应用名称只允许下划线、数字或中英文字符。

步骤二:获取 SDKAppId 和密钥(SecretKey)

1. 进入应用管理 > 应用配置,获取 SDKAppId 。
2. 进入 访问管理(CAM)控制台 获取密钥,若无密钥,需要在 API 密钥管理中进行新建,具体可参见 访问密钥管理 。




步骤三:导入 SDK

Gradle 工程 SDK 远程构建

LCIC SDK 已经发布到 Maven Central 库,您可以通过配置 Gradle 自动下载更新。
1. 应用模块的 build.gradle 中,在 dependencies 中添加 LCIC SDK 的依赖。
dependencies {
// LCICSDK 组件 
implementation 'com.tencent.edu:TCICSDK:1.8.21
}
2. 在 defaultConfig 中,指定 App 使用的 CPU 架构。
defaultConfig {
ndk{
abiFilters "armeabi-v7a","arm64-v8a"
}
}
说明:
目前 LCIC SDK 支持 armeabi-v7a 和 arm64-v8a,能够根据业务需求进行灵活配置。支持不同架构时,包体大小可能会有所不同。
3. 在 compileOptions 中,使用 JDK 1.8 编译。
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
4. 如果 AGP 大于4.2.0,需要在应用模块的 build.gradle 中,配置以下内容:
android {
packagingOptions {
jniLibs {
useLegacyPackaging true
}
}
}
5. 单击 Sync Now,自动下载 SDK 并集成到工程里。

步骤四:配置清单文件

在 AndroidManifest.xml 中配置 App 的权限,LCIC SDK 需要以下权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
注意:
当 minSdkVersion ≥ 23时,在 AndroidManifest.xml 中 application 添加 android:extractNativeLibs="true" 参数。

步骤五:设置混淆规则(可选)

如设置了混淆,需在 proguard-rules.pro 文件,将 LCIC SDK 相关类加入不混淆名单:
-keep class com.tencent.** { *; }

步骤六:SDK 授权申请

需要您提交 腾讯云工单,向我们发送 SDK 权限申请。请按以下模板提供对应信息。在信息确认无误的情况下,我们将会在1个工作日完成。
注意:
一个旗舰版仅支持授权一个正式包名,请确认无误后发送相关信息。
包名用于 X5 内核以及快直播播放器签名授权,请提供所需授权的正式应用的 App Name、Package Name 和 Bundle ID 信息。
分类
说明
问题标题
实时互动-教育版 Android SDK 授权申请
问题主要内容
公司名称。如,xxx 有限公司。
个人姓名
联系方式
App Name
Package Name (Android)
Bundle ID (iOS)

步骤七:初始化 X5 内核

X5 内核相对于系统 WebView,具有兼容性更好,速度更快等优势。Android 实时互动-教育版 SDK 的组件实现依赖于 X5 内核的 WebView。现提供 X5 内核静态集成方式,能提升 X5 内核加载成功率且无需进程重启即可生效。
1. 检查同意隐私政策协议。
注意:
建议在同意隐私政策协议之后,再调用初始化 X5 内核的方法,以免上架应用时出现未经用户同意收集个人信息的情况。
2. 初始化 X5 内核。
进入课堂前,必须先判断 X5 内核是否初始化完成,初始化方法必须在主进程中执行(SDK 提供了 TCICInitProvider.isMainProcess(context) 方法判断当前是否处于主进程)
onViewInitFinished 方法已经回调,初始化不允许重复调用,仅初始化1次即可。
if (TCICInitProvider.isMainProcess(context)) {
//初始化X5内核
TCICManager.getInstance().initX5Core(licenseKey, new TBSSdkManageCallback() {
@Override
public void onCoreInitFinished() {
}
@Override
public void onViewInitFinished(boolean isX5Core) {
//X5内核初始化完成,可以进课堂
}
});
}
注意:
TCICManager.getInstance().initX5Core(licenseKey); 中的 licenseKey 参数需要通过 步骤六 提交工单联系我们获取 X5 内核的 licenseKey。

步骤八:获取进入课堂所需参数

TCICClassConfig 参数解释
1. 通过 控制台 进入应用管理 > 应用配置,获取 SDKAppId ,即为学校编号(schoolId)信息。
2. 通过云 API 接口 CreateRoom 创建课堂,可以获取到课堂号(classId)信息。
3. 通过调用云 API 接口 RegisterUser 注册用户,可以获取到对应的用户 ID(userId)信息。
4. 通过云 API 接口 LoginUser 登录,可以获取到用户鉴权 token 信息。
5. scene、lng、camera、mic、speaker为非必要参数,如果不设置则使用的是默认值。
字段
类型
必填
含义
备注
schoolId
int
学校编号
通过控制台进入应用管理 > 应用配置,获取 SDKAppId
classId
long
课堂编号
通过 CreateRoom 接口创建返回 RoomId 获取。
userId
string
用户账号
通过  RegisterUser  接口获取。
token
string
后台鉴权参数
通过  LoginUser  接口获取。
scene
string
场景名称
用于区分不同的定制布局,通过 SetAppCustomContent 接口配置。
lng
string
语言参数
当前支持中文(简体)、中文(繁体) 、English、韩语、日语、阿拉伯语、越南语、印尼语。可拼接相应参数,展示对应语种。参数:zh-CN、zh-TW、en-US、ka、ja、ar、vi、id。
同时需要设置:TCICWebViewManager.getInstance().setClassLanguage(this, env, lng); lng参数。
camera
int
初始化开启摄像头
1为开启摄像头,0为关闭摄像头,默认 1。
mic
int
初始化开启麦克风
1为开启麦克风,0为关闭麦克风,默认 1。
speaker
int
初始化开启扬声器
1为开启扬声器,0为关闭扬声器,默认 1。

步骤九:调起组件主页面

只需传递 4 个参数就可调起 LCIC 组件主页面,分别为学校编号、课堂编号、用户账号和 token。
说明:
schoolIdSDKAppId
Intent intent = new Intent(getActivity(), TCICClassActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
Bundle bundle = new Bundle();
TCICClassConfig initConfig = new TCICClassConfig.Builder()
.schoolId(schoolId)
.classId(classId)
.userId(userId)
.token(token)
.build();
bundle.putParcelable(TCICConstants.KEY_INIT_CONFIG, initConfig);
intent.putExtras(bundle);
startActivity(intent);
如果您需要监听退出课堂通知,可以通过注册 TCICConstants.ON_CLASS_EXITED_ACTION 的本地广播,参见如下代码:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(TCICConstants.ON_CLASS_EXITED_ACTION);
LocalBroadcastManager.getInstance(context).registerReceiver(broadcastReceiver, intentFilter);

其它文档

我们建议您在使用 LCIC SDK 时,同时也接入腾讯 Bugly,帮助您快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈。 接入指南参见 腾讯 Bugly 官网
参见 开发 Demo