集成 CallAPI 和三方信令
在实现 1v1 私密房和秀场转 1v1 之前,你需要将声网 CallAPI
集成到项目中。本文介绍如何将源码添加到你的项目中,并进行必要的项目设置。
前提条件
开始前,请确保满足如下前提条件:
- Git。
- Java Development Kit。
- Android Studio 4.1 及以上。
集成步骤
1. 创建项目
如果你没有 Android 项目,参考如下步骤先创建一个。如果本地已有项目,可以跳过本步骤,直接参考 2. 添加 CallAPI。
-
参考 Create a project 在 Android Studio 中创建一个项目。
-
在项目的
Manifest
文件中添加如下权限:XML<!--必要权限-->
<uses-permission android:name="android.permission.INTERNET"/>
<!--可选权限-->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<!-- 对于 Android 12.0 及以上且集成 v4.1.0 以下 SDK 的设备,还需要添加以下权限 -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<!-- 对于 Android 12.0 及以上设备,还需要添加以下权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/> -
打开
/app/proguard-rules.pro
文件,添加如下行以防止声网 SDK 的代码被混淆:Kotlin-keep class io.agora.**{*;}
2. 添加 CallAPI
参考如下步骤将 CallAPI
添加到项目中。
- 下载或克隆
CallAPI
源码。 - 将
onetoone
文件拷贝到项目文件中,并移除signalClient
文件夹内的CallRtmManager.kt
和CallRtmSignalClient.kt
文件。 - 在 Android Studio 顶部工具栏中,点击 Sync Project With Gradle File,将
CallAPI
代码集成到项目中。
3. (可选)检查版本兼容性
如果你的项目之前集成过声网的 RTC SDK,需要确保 SDK 的版本号与 CallAPI
兼容,即 RTC SDK 的版本号不低于 4.1.1.26。
如果版本号与 CallAPI
不兼容,可以直接在 /app/build.gradle
文件的 dependencies
中修改对应的 SDK 版本:
'io.agora.rtc:agora-special-full:4.1.1.26'
4. 实现并集成自定义信令
你需要将三方信令的相关功能进行封装,实现信令管理、登录登出、Token 续期等能力,然后添加进项目中。具体的封装方法可以参考实现自定义信令。
为方便体验与参考,声网提供一个基于环信即时通讯 SDK 包装的,实现了 1v1 私密房需要能力的 CallEasemobSignalClient
类。
由于自定义的信令管理类基于三方信令 SDK 实现,且只实现了 CallAPI
需要的信令协议和消息收发功能,因此 CallEasemobSignalClient
仅供参考,不保证其可用性和完整性。
参考如下步骤将 CallEasemobSignalClient
类导入到项目中:
- 拷贝
CallEasemobSignalClient.kt
源码。 - 将
CallEasemobSignalClient.kt
文件集成到项目文件中。
后续步骤
完成集成后,你就可以根据业务需要添加相应的功能到你的项目中: