本文档旨在指导开发者快速将互动课堂(LCIC)Web 内核版 SDK 集成至 Android 项目中。
说明:
开发环境要求
在开始集成前,请确保您的开发环境满足以下要求:
开发工具:Android Studio 3.0 或更高版本。
系统版本:Android 6.0(API Level 23)及以上。
集成步骤
步骤 1:导入 SDK
LCIC SDK 已发布至 Maven Central,建议通过 Gradle 进行远程集成。
请在应用模块(Module)的
build.gradle 文件中进行如下配置。1. 添加依赖
在
dependencies 闭包中添加 SDK 依赖:dependencies {// LCICSDK 组件implementation 'com.tencent.edu:TCICSDK:1.8.26'}
2. 配置 CPU 架构
在
defaultConfig 闭包中指定支持的架构。说明:
目前 SDK 支持
armeabi-v7a 和 arm64-v8a。您可以根据业务需求灵活配置,支持的架构越多,安装包体积越大。defaultConfig {ndk {abiFilters "armeabi-v7a", "arm64-v8a"}}
3. 配置 Java 编译版本
在
compileOptions 闭包中,设置 JDK 版本为1.8:compileOptions {sourceCompatibility 1.8targetCompatibility 1.8}
4. 适配高版本 AGP
如果您的 Android Gradle Plugin (AGP) 版本大于4.2.0,请在
android 闭包中添加以下配置以避免打包错误:android {packagingOptions {jniLibs {useLegacyPackaging true}}}
5. 同步项目
配置完成后,单击 Android Studio 右上角的 Sync Now,等待 SDK 下载并集成完成。
步骤 2:配置清单文件
在
AndroidManifest.xml 中声明 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" /><application...<!-- 注意:当 minSdkVersion ≥ 23 时,必须添加此属性 -->android:extractNativeLibs="true">...</application>
步骤 3:配置混淆规则(可选)
如果您开启了代码混淆,请在
proguard-rules.pro 文件中添加以下规则,防止 LCIC SDK 核心类被混淆:-keep class com.tencent.** { *; }
步骤 4:申请 SDK 授权 (License)
App 开发需要获取以下两种 License:
1. Web 引擎 License
测试环境:请参考 申请 Web 引擎测试用 License,完成流程至第四部分获取 LicenseKey 即可。
正式环境:购买旗舰版后,请通过 联系我们 加入微信群联系技术支持申请正式版 License。
2. 播放器授权(仅“直播大班课”需要)
注意:
一个旗舰版仅支持授权一个正式包名,请确认信息无误。
参考模板提供信息: 问题:实时互动-教育版申请播放器授权 公司名称: 联系方式: App Name: Package Name (Android): Bundle ID (iOS): |
步骤 5:初始化 Web 引擎
Web 引擎相较于系统 WebView 具有更好的兼容性和速度。
1. 隐私合规检查
请务必在用户同意隐私政策协议之后,再调用初始化方法,以免违规收集个人信息导致应用上架失败。
2. 执行初始化
初始化代码必须在主进程中执行,且只需调用一次。
// 判断是否为主进程if (TCICInitProvider.isMainProcess(context)) {// 初始化 Web 引擎// licenseKey 获取方式请参考步骤 4TCICManager.getInstance().initX5Core(licenseKey, new TBSSdkManageCallback() {@Overridepublic void onCoreInitFinished() {// 内核初始化结束回调}@Overridepublic void onViewInitFinished(boolean isX5Core) {// Web 引擎初始化完成,此时可以进入课堂Log.i("LCIC", "Web Engine Init Finished. Is X5 Core: " + isX5Core);}});}
步骤 6:构建进房参数
进入课堂需要构建
TCICClassConfig 对象。请通过以下方式获取所需参数:参数详情表
字段 | 类型 | 必填 | 含义 | 备注 |
schoolid | int | 是 | 应用 ID | |
userid | long | 是 | 课堂 ID | |
token | string | 是 | 用户 ID | |
classid | string | 是 | 鉴权 Token | |
scene | string | 否 | 场景名称 | 用于区分不同的定制布局,有两种配置方式: |
lng | string | 否 | 语言参数 | 界面语言设置。支持值: zh-CN:中文简体zh-TW:中文繁体en-US:英语ja:日语ko:韩语ar:阿拉伯语vi:越南语id:印尼语需配合 TCICWebViewManager.getInstance().setClassLanguage 使用。 |
camera | int | 否 | 开启摄像头 | 1:开启 (默认),0:关闭。 |
mic | int | 否 | 开启麦克风 | 1:开启 (默认),0:关闭。 |
speaker | int | 否 | 开启扬声器 | 1:开启 (默认),0:关闭。 |
groupLiveCode | string | 否 | 分组直播码 |
步骤 7:调起课堂页面
使用配置好的参数启动
TCICClassActivity 即可进入课堂。// 1. 构建配置对象TCICClassConfig initConfig = new TCICClassConfig.Builder().schoolId(schoolId) // 应用 ID.classId(classId) // 课堂 ID.userId(userId) // 用户 ID.token(token) // 鉴权 Token.build();// 2. 启动课堂 ActivityIntent intent = new Intent(getActivity(), TCICClassActivity.class);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);Bundle bundle = new Bundle();bundle.putParcelable(TCICConstants.KEY_INIT_CONFIG, initConfig);intent.putExtras(bundle);startActivity(intent);
监听退出课堂
如果您需要感知用户退出课堂的事件,可以注册本地广播接收器:
IntentFilter intentFilter = new IntentFilter();intentFilter.addAction(TCICConstants.ON_CLASS_EXITED_ACTION);LocalBroadcastManager.getInstance(context).registerReceiver(broadcastReceiver, intentFilter);
推荐与资源
异常监控:建议接入 腾讯 Bugly 以快速发现并解决线上异常,提升用户体验。
示例代码:请参考 Android 开发 Demo。
进阶功能:如需定制界面,请参考 Web 内核定制指南。