适用于 Android 的 Sendbird 聊天 SDK 允许您轻松地将实时聊天添加到客户端应用程序中。 Sendbird 提供功能丰富、可扩展且经过验证的聊天解决方案,深受 Reddit、Hinge、PubG 和 Paytm 等公司的信赖。
聊天 SDK 提供了完整的功能来提供丰富的聊天体验,通过添加用户登录、列出可用频道、选择或创建开放频道或群组频道、通过频道事件委托接收消息和其他事件来实现它。发送消息的能力。一旦这个基本功能到位,恭喜你,你现在有了一个聊天应用程序!
完成此操作后,请查看 Sendbird 支持的所有其他功能,并添加最适合您的用户的功能。
在文档中了解有关 Android 版 Sendbird Chat 的更多信息。如果您有任何意见、问题或功能请求,请在 Sendbird 社区中告诉我们。
适用于 Android 的聊天 SDK 的最低要求是:
Android 5.0 (API level 21) or higher
Java 8 or higher
Android Gradle plugin 3.4.2 or higher
Firebase Cloud Messaging 19.0.1 or higher
注意:Sendbird 服务器支持从版本 1.0 到 1.3 的传输层安全性 (TLS)。例如,在不支持 TLS 1.3 的服务器区域,将支持从 1.2 到 1.0 的较低版本,以实现安全数据传输。
最快的入门方法是使用示例存储库中的示例应用程序之一,在 Sendbird 仪表板中创建一个应用程序,并将App ID
复制到示例应用程序,然后就可以开始了。
在安装 Sendbird Chat SDK 之前,您需要在 Sendbird Dashboard 上创建一个 Sendbird 应用程序。初始化聊天 SDK 时,您将需要 Sendbird 应用程序的App ID
。
注意:每个 Sendbird 应用程序都可以与单个客户端应用程序集成。在同一应用程序中,用户可以跨所有平台相互通信,无论是在移动设备上还是在网络上。
如果您熟悉使用外部库或 SDK,那么安装聊天 SDK 会很简单。首先,将以下代码添加到根build.gradle
文件中:
allprojects {
repositories {
.. .
maven { url " https://repo.sendbird.com/public/maven " }
}
}
注意:确保上述代码块未添加到您的模块
build.gradle
文件中。
如果使用 Gradle 6.8 或更高版本,请将以下内容添加到settings.gradle
文件中:
dependencyResolutionManagement {
repositories {
maven { url " https://repo.sendbird.com/public/maven " }
}
}
然后,将依赖项添加到项目的顶级build.gradle
文件中:
dependencies {
.. .
implementation ' com.sendbird.sdk:sendbird-chat:4.21.1 '
.. .
}
Sendbird SDK for Android 默认启用 TLS 1.3。要禁用它,请将以下配置包含到 gradle 依赖项中:
注意:SendBird Android SDK 依赖 Conscrypt 库才能支持 TLS 1.3
dependencies {
implementation ( ' com.sendbird.sdk:sendbird-chat:4.21.1 ' ) {
exclude group : ' org.conscrypt ' , module : ' conscrypt-android '
}
}
Chat SDK 需要系统权限,以便与 Sendbird 服务器进行通信以及在用户设备的存储上进行读写。要授予系统权限,请将以下行添加到您的AndroidManifest.xml
文件中。
< uses-permission android : name = " android.permission.INTERNET " />
< uses-permission android : name = " android.permission.READ_EXTERNAL_STORAGE " />
< uses-permission android : name = " android.permission.WRITE_EXTERNAL_STORAGE " />
当您使用minifyEnabled true
构建 APK 时,将以下行添加到模块的ProGuard
规则文件中。
-dontwarn com.sendbird.android.shadow. **
现在聊天 SDK 已导入,我们已准备好开始发送消息。
为了使用 Chat SDK 的功能,必须通过 Sendbird 服务器的用户身份验证来启动SendbirdChat
实例。该实例基于经过身份验证的用户帐户与服务器进行通信和交互,然后用户的客户端应用程序可以使用聊天SDK的功能。
以下是使用聊天 SDK 发送第一条消息的步骤:
现在,在应用程序中初始化聊天 SDK,以允许聊天 SDK 响应 Android 客户端应用程序中连接状态的变化。
要初始化SendbirdChat
实例,请将 Sendbird Dashboard 中 Sendbird 应用程序的APP_ID
作为参数传递给SendbirdChat.init()
方法中的参数。由于SendbirdChat.init()
只能是单个实例,因此在 Android 客户端应用程序中仅调用一次。通常,初始化是在用户登录屏幕中实现的。
注意:建议在
Application
实例的onCreate()
方法中初始化Chat SDK。
SendbirdChat . init ( InitParams ( APP_ID , applicationContext, useCaching = true ))
使用init()
方法进行初始化后,您的客户端应用程序在调用任何方法之前必须始终连接到 Sendbird 服务器。如果尝试在没有连接的情况下调用方法,则会返回ERR_CONNECTION_REQUIRED (800101)
错误。
通过唯一的用户 ID 或结合访问令牌将用户连接到 Sendbird 服务器。 Sendbird 更喜欢后一种方法,因为它可以确保用户的隐私。前者在开发阶段或您的服务不需要额外的安全性时很有用。
使用其唯一的用户 ID将用户连接到 Sendbird 服务器。默认情况下,Sendbird 服务器可以通过唯一的用户 ID 来验证用户。根据请求连接,服务器查询数据库以检查是否匹配。任何未使用的用户 ID 都会自动注册为 Sendbird 系统的新用户,而现有 ID 则允许间接登录。 ID 在 Sendbird 应用程序中必须是唯一的,例如您服务中的散列电子邮件地址或电话号码。
这使您无需深入了解令牌注册过程的细节即可启动并运行,但请确保在启动之前启用强制令牌,因为如果不启用令牌,启动会存在安全风险。
SendbirdChat .connect( USER_ID ) { user, e ->
if (e != null ) { // Error.
return @connect
}
}
Sendbird 更喜欢您通过使用令牌来传递 APP ID,因为它可以确保用户的隐私和安全。创建用户及其访问令牌,或发出要在连接期间传递的会话令牌。可以在此处找到访问令牌和会话令牌之间的比较。颁发令牌后,用户需要在用于登录的SendbirdChat.connect()
方法中提供颁发的令牌。
SendbirdChat.connect()
方法。 SendbirdChat .connect( USER_ID , AUTH_TOKEN ) { user, e ->
if (e != null ) { // Error.
return @connect
}
}
使用以下代码创建一个开放通道。开放渠道是 Sendbird 应用程序中的所有用户无需邀请即可轻松参与的渠道。
OpenChannel .createChannel( OpenChannelCreateParams ()) { channel, e ->
if (e != null ) { // Error.
return @createChannel
}
}
注意:您还可以创建群组频道来发送消息。要了解更多信息,请参阅在群组频道页面中创建频道。
进入开放通道发送和接收消息。
OpenChannel .getChannel( CHANNEL_URL ) { channel, e ->
if (e != null ) { // Error.
return @getChannel
}
channel?.enter { enterError ->
if (enterError != null ) { // Error.
return @enter
}
}
}
最后,向频道发送消息。共有三种类型:用户消息(纯文本)、文件消息(二进制文件,例如图像或 PDF)以及管理消息(也通过仪表板或聊天平台发送的纯文本) API。
openChannel.sendUserMessage( MESSAGE ) { message, e ->
if (e != null ) { // Error.
return @sendUserMessage
}
}
聊天 SDK 的大小是将其集成到您的应用程序时需要考虑的一个重要因素。聊天SDK的大小如下:
在 Sendbird,我们是一个由谦逊、友好和勤奋的多元化团队组成的团队,我们有着共同的目标,即构建下一代移动和社交技术,涵盖聊天、语音和视频,这些技术正在改变我们的工作和生活方式。我们一直在寻找优秀的人才加入我们的团队。请查看我们的职业页面以获取更多信息。