实时互动-教育版 Android 快速接入

这篇说说在 Android 项目中快速集成互动课堂的步骤,包括开发环境要求、SDK导入、权限配置、初始化和进入课堂页面,核心是调用TCICManager完成配置与跳转。 – 环境要求:需Android SDK API 21+、NDK 27.0+、Java 11+,支持Kotlin。 – SDK导入:配置Maven仓库并添加依赖,需替换版本号。 – 权限与初始化:声明网络、音视频权限,动态申请敏感权限,调用TCICMa。

相关产品
实时互动-教育版 产品页,含版本规格、价格与购买入口。

这篇会介绍如何在 Android 项目中快速集成互动课堂功能。

注意:说明:

注意:阅读这篇前,你可以先了解 移动端原生内核与 Web 内核的区别。

一、开发环境要求

在开始之前,请确保你的开发环境满足以下要求:

·Android SDK:API 21 及以上 (Android 5.0+)

·NDK:27.0.12077973 及以上

·Java:Java 11 及以上

·Kotlin:支持

二、快速接入 (Quick Start)

以下步骤将介绍如何快速在项目中跑通互动课堂。完整示例代码可参考 Demo。

三、步骤 1:导入 SDK

1. 在项目根目录的 settings.gradle 中配置 Maven 仓库:

maven { url "https://storage.googleapis.com/download.flutter.io" }maven { url "https://android.qcloudclass.com/repo" }

2. 在 app 模块的 build.gradle 中添加依赖(请将 ${latest} 替换为 Demo 中的最新版本号):

android { compileSdk = 35 // 确保 compileSdk 满足要求}dependencies { implementation("com.qcloudclass:tcic:${latest}")}

3. 在 AndroidManifest.xml 的 <application> 标签中添加 tools:replace="android:allowBackup" 解决冲突:

<application android:allowBackup="true" tools:replace="android:allowBackup" … >

四、步骤 2:配置权限

在 AndroidManifest.xml 中声明必要的硬件和网络权限:

<!– 网络与状态 –><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!– 音视频与蓝牙 –><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><uses-permission android:name="android.permission.BLUETOOTH" /><uses-permission android:name="android.permission.CAMERA" /><uses-feature android:name="android.hardware.camera.autofocus" /><!– 存储 –><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

注意:Android 6.0 以上系统,麦克风、相机、存储等敏感权限需在代码中动态申请

五、步骤 3:初始化 SDK

在应用启动或首次进入相关页面时进行初始化(只需调用一次):

// Java / KotlinTCICManager.initialize(context);

六、步骤 4:设置全局回调监听 (Kotlin 示例)

通过设置回调,你可以监听用户进出房间、收到消息等事件:

TCICManager.setCallback(object : TCICManager.TCICCallback { override fun onJoinedClassSuccess() { runOnUiThread { Toast.makeText(ctx, "加入课堂成功", Toast.LENGTH_SHORT).show() } } override fun afterExitedClass() { runOnUiThread { Toast.makeText(ctx, "已退出课堂", Toast.LENGTH_SHORT).show() TCICManager.closeTCICActivity() // 关闭课堂页面 } } override fun onJoinedClassFailed() { runOnUiThread { TCICManager.closeTCICActivity() } } override fun onKickedOffClass() { runOnUiThread { Toast.makeText(ctx, "被踢出课堂", Toast.LENGTH_SHORT).show() } } override fun onMemberJoinedClass(data: Map<*, *>) { /* 成员加入 */ } override fun onMemberLeaveClass(data: Map<*, *>) { /* 成员离开 */ } override fun onRecivedMessage(message: Map<*, *>) { /* 收到消息 */ } override fun onError(errorCode: String, errorMsg: String) { /* 错误处理 */ }})

七、步骤 5:进入课堂页面 (Jetpack Compose 示例)

通过 接入准备 拿到关键参数,配置 TCICConfig 并进入课堂:

@Composablefun EnterClassRoomButton(context: Context) { Button(onClick = { // 1. 填入从后台获取的参数 val token = "your_token" val classId = "your_class_id" val userId = "your_user_id" val role = 1 // 角色:0学生, 1老师, 3助教, 4巡课 // 2. 设置配置 val config = TCICConfig(token, classId, userId, role) TCICManager.setConfig(config) // 3. 跳转到课堂页面 context.startActivity(TCICManager.getTCICIntent(context)) }) { Text(text = "点击进入课堂") }}

赞 (0)
上一篇 4天前
下一篇 4天前