本文介绍如何使用 anyRTC 互动白板 SDK。
开发环境要求
- Android SDK API Level ≥ 19
- 如果你的 App 以 Android 9 及以上为目标平台,请关注 Android 隐私权变更。
- Android Studio 3.0 或以上版本。
- 一个有效的 开发者账号。
运行环境要求
你需要有一台 Android 真机。
获取 AppID
参考以下步骤获取一个 AppID。若已经拥有 AppID,请跳过当前步骤,直接查看快速集成。
集成 SDK
选择如下任意一种方式将 SDK 集成到你的项目中。
方法一:使用 MavenCenter() 自动集成
在项目的 /app/build.gradle
文件中,添加如下行:
...
dependencies {
...
// a.b.c.d 请填写具体版本号,如:1.0.0.1
// 可通过 SDK 发版说明取得最新版本号
implementation 'io.anyrtc:ARBoard:a.b.c.d'
}
请点击查看发版说明获取最新版本号。
方法二:手动复制 SDK 文件
- SDK 下载页面,获取最新版的SDK,然后解压。
- 将 SDK 包内 SDK 路径下的如下文件,拷贝到你的项目路径下:
文件或文件夹 | 项目路径 |
---|---|
ARBoard-release 文件 | /app/libs/ |
- 在Mould目录下的build.gradle文件增加如下代码
implementation fileTree(dir: 'libs', include: ['*.aar'])
添加项目权限
根据场景需要,在 /app/src/main/AndroidManifest.xml
文件中添加如下行,获取相应的设备权限:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="for.example>"
<uses-permission android:name="android.permission.INTERNET" />
...
</manifest>
防止代码混淆
在 app/proguard-rules.pro
文件中添加如下行,防止混淆 SDK 的代码:
-keep class io.anyrtc.arboard.**{*;}
操作流程
本节内容主要介绍如何加入白板房间,提供相关示例代码。
初始化客户端
- 将获取到的 App ID 添加到
values/strings_config.xml
文件中的whiteboard_app_id
一栏 - 调用构造方法, 传入:
Context
- 获取到的 App ID
ARBoardHandler
即可完成初始化
Tips: 使用相同 App ID 的应用才能互相通信
加入频道
完成初始化后,你就可以调用 joinChannelByToken
方法加入频道。你需要在该方法中传入如下参数:
token
:传入能标识用户角色和权限的 Token。可设为如下一个值:- 临时 Token。临时 Token 服务有效期为 15小时、24 小时、3天、15天不等。你可以在控制台里生成一个临时 Token
channelId
: 频道 ID- 传入纯数字
uid
: 数字与字母组合的字符串- 可随机生成临时值、更具用户帐号生成等方式
joinChannelSuccessResponse
: 加入频道回调- 返回Boolean值: 成功=true, 失败=false
private void joinChannel(String token, String channelId, String uid, ARBoardKit.OnValueResponse<Boolean> joinSuccessResponse) {
boardKit.joinChannelByToken(token, channelId, uid, joinSuccessResponse);
}
获取白板基础数据
在加入频道后,需等待onHistoryDataSyncCompleted()
回调执行后获取
// 加入频道成功
@Override
public void onJoinChannel(String channelId, String uid) {
}
// 白板初始化完成
@Override
public void onHistoryDataSyncCompleted() {
// 此方法回调后可获取白板属性,如:getBackgroundColor();
}
离开频道
根据场景需要,如离开房间、关闭 App 或 App 切换至后台时,调用 leaveChannel 离开当前白板频道。
boardKit.leaveChannel()
开发注意事项
- 请注意安卓6.0后的权限获取