该版本于 2022 年 10 月 17 日发布,上传包到 Maven Central。
该版本于 2022 年 10 月 12 日发布,升级 OpenSSL 至 1.1.1q。
该版本于 2022 年 9 月 1 日发布,提升了 SDK 的稳定性。
该版本于 2022 年 7 月 27 日发布。
富媒体传输、历史消息 和 离线消息 功能于该版本正式下线。旧版本 SDK 会继续支持,已集成这些功能的用户不受影响。
废弃
createFileMessageByMediaId
createFileMessageByUploading
createImageMessageByMediaId
createImageMessageByUploading
cancelMediaUpload
cancelMediaDownload
downloadMediaToFile
downloadMediaToMemory
onFileMessageReceived
onFileMessageReceivedFromPeer
onImageMessageReceived
onImageMessageReceivedFromPeer
onMediaUploadingProgress
onMediaDownloadingProgress
enableOfflineMessaging
enableHistoricalMessaging
该版本于 2022 年 03 月 01 日发布。
自该版本起,你无需在 Android 项目的 AndroidManifest.xml
文件中添加如下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
修复了一些富媒体相关的崩溃问题。
该版本于 2021 年 11 月 19 日发布。
自该版本起,你可以通过 Maven Central 自动集成声网 RTM Android SDK。关于使用 Maven Central 自动集成的步骤,详见集成 SDK。
自该版本起,你需要在 Android 项目的 AndroidManifest.xml
文件中添加如下权限,便于检测 WIFI 网络的连接状态:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
提升了 IPv4/IPv6 双栈网络下登录成功率和连接稳定性。
该版本于 2021 年 7 月 19 日发布。
提高了弱网状态下的登录成功率和消息投递成功率。
该版本于 2021 年 6 月 21 日发布。
修复了一些可能导致崩溃的问题,优化了稳定性。
该版本于 2021 年 4 月 30 日发布。
修复了一些可能导致崩溃的问题,优化了稳定性。
该版本于 2021 年 4 月 20 日发布。
集成变更
由于 JCenter 即将关闭且 JitPack 有丢包的情况,自该版本起,声网停止将 SDK 包发布到 JCenter 和 JitPack,而会发布到 Maven Central。
优化了弱网对抗能力,提高了弱网环境下的登录成功率和消息投递成功率。
修复了一些崩溃问题。
该版本于 2021 年 2 月 10 日发布。
该版本修复了以下问题:
该版本于 2020 年 11 月 23 日发布。
优化了登录和消息发送的性能。
该版本于 2020 年 9 月 30 日发布。
优化了日志文件。
该版本于 2020 年 9 月 1 日发布。
setLogFileSize
日志文件的大小默认值从 512 KB 增加到 10 MB。上限从 10 MB 增加到 1 GB。setRtmServiceContext
方法设置声网 RTM SDK 的访问区域。设置之后,RTM SDK 只能连接位于限定区域的声网 RTM 服务器。新增方法
该版本于 2020 年 5 月 11 日发布。
1. 发送和接收文件消息
v1.3.0 支持上传和下载大小不超过 30 MB 的任意格式的非空文件,支持随时取消正在进行中的上传或下载任务。每份上传到声网服务器的文件都对应一个 media ID,在服务端保存 7 天。你可以通过 media ID 在 7 天有效期内从声网服务器下载对应的文件。
v1.3.0 引入了 RtmFileMessage
消息类用于保存和传递系统生成的 media ID。RtmFileMessage
继承自 RtmMessage
类,所以你可以通过已有的点对点消息或频道消息发送方法传递 RtmFileMessage
实例。你可以通过 RtmFileMessage
对象进行以下操作:
2. 发送和接收图片消息
v1.3.0 支持上传和下载大小不超过 30 MB 的任意格式的非空图片,支持随时取消正在进行中的上传或下载任务。每份上传到声网服务器的图片都对应一个 media ID,在服务端保存 7 天。你可以通过 media ID 在 7 天有效期内从声网服务器下载对应的图片。
v1.3.0 引入了 RtmImageMessage
消息类用于保存和传递系统生成的 media ID。RtmImageMessage
继承自 RtmMessage
类,所以你可以通过已有的点对点消息或频道消息发送方法传递 RtmImageMessage
实例。你可以通过 RtmImageMessage
对象进行以下操作:
3. 通知上传或下载任务的进度
对于正在进行中的上传或下载任务,SDK 会通过主动回调每秒返回一次上传或下载的进度。当上传或下载任务暂停时,SDK 暂停返回相应回调,直至任务继续进行。
新增方法
createFileMessageByMediaId
createImageMessageByMediaId
createFileMessageByUploading
createImageMessageByUploading
downloadMediaToMemory
downloadMediaToFile
cancelMediaUpload
cancelMediaDownload
新增回调
onImageMessageReceived
onFileMessageReceived
onImageMessageReceivedFromPeer
onFileMessageReceivedFromPeer
onMediaUploadingProgress
onMediaDownloadingProgress
废弃方法
sendMessage
被重载方法 sendMessage
替代。
该版本于 2019 年 12 月 13 日发布。
问题修复
修复了一个偶现的频道属性操作后无法收到回调的问题。
该版本于 2019 年 11 月 29 日 发布。
新增功能
支持与老信令 SDK 的 endCall 方法兼容
你可以调用 sendMessageToPeer
方法在发送文本消息时将消息设为 AgoraRTMLegacyEndcallCompatibleMessagePrefix_<channelId>_<your additional information> 格式即可。请以 endCall 对应频道的 ID 替换 <channelId>, <your additional information> 为附加文本信息。请注意:附加文本信息中不可使用下划线 "_" ,附加文本信息可以设为空字符串 "" 。
问题修复
onMemberJoined
回调的问题。该版本于 2019 年 11 月6 日发布。新增如下功能:
本版本支持订阅或取消订阅最多 512 个用户的在线状态,SDK 会通过 onSuccess
返回订阅或取消订阅结果。首次订阅成功时,SDK 会通过 onPeersOnlineStatusChanged
回调返回所有被订阅用户的在线状态;之后每当有被订阅用户的在线状态出现变化,SDK 都会通过 onPeersOnlineStatusChanged
回调通知订阅方。
本版本支持根据被订阅类型获取被订阅用户列表。现实情况中,你可能多次订阅或取消订阅,可能重复订阅了相同用户,可能出现订阅或取消订阅不成功的情况,也可能根据不同的订阅类型订阅了不同的用户。这时,你可以通过本功能根据订阅类型获取当前被订阅用户列表。
被订阅类型由枚举类型 PeerSubscriptionOption
定义。本版本仅支持用户在线状态订阅一种类型,后继会不断扩展。
本版本支持创建自定义二进制消息,支持以点对点消息或频道消息形式发送多种文件格式。
本版本支持:
如果在创建自定义二进制消息时未设置文本描述,你可以在消息实例 RtmMessage
创建成功后通过调用 setText
方法设置自定义二进制消息的文本描述。
之前版本中,我们先通过 createMessage
方法创建一个空文本消息实例再通过调用 RtmMessage
类的对象方法 setText
设置文本内容,本版本提供了更加便利的 createMessage
方法可以在创建文本消息的同时直接设定文本消息内容。
channelId
创建频道后调用 join
或 leave
时系统返回 rtm native not ready
。该版本于 2019 年 9 月 18 日发布。新增如下功能:
支持在不加入频道的情况下通过主动调用 getChannelMemberCount 接口查询单个或多个频道的频道人数。一次最多可查询 32 个频道的成员人数。
如果你已经加入某频道,你无需调用 getChannelMemberCount
接口查询当前频道人数。我们也不建议你通过监听 onMemberJoined
和 onMemberLeft
统计频道成员人数。从本版本开始,SDK 会在频道成员人数发生变化时通过 onMemberCountUpdated 回调接口通知频道成员并返回当前频道成员人数:
请将该回调与 getMembers 方法进行区分:
- 前者为主动回调。SDK 向频道成员返回最新频道成员人数。
- 后者由 onSuccess 返回频道成员列表,且当频道成员人数超过 512 时仅返回随机的 512 个成员列表。
支持设置或查询某个指定频道的属性。你可以用频道属性实现群公告、上下麦同步等功能。
每个频道属性为 key 和 value 的键值对。详见:RtmChannelAttribute。其中:
支持功能包括:
点对点消息重发
本版本优化了点对点消息在弱网情况下的重发机制,并延长点对点消息超时时间为 10 秒,提高了在弱网情况下点对点消息的发送成功率。
频道消息缓存
声网 RTM 系统会对短期掉线后重连成功的频道成员补发最长 30 秒最多 32 条的频道消息,提高了弱网情况下频道消息的到达率。
新增方法
新增回调
新增错误码
废弃方法
废弃错误码
该版本于 2019 年 8 月 1 日发布。
onConnectionStateChanged
回调。该版本于 2019 年 7 月 24 日发布。
新老互通
支持与声网 Signaling SDK 互通。
本版本在 LocalInvitation
类中实现了 setChannelId
和 getChannelId
方法。
- 如需与声网 Signaling SDK 互通,则必须调用
setChannelId
方法设置频道 ID。不过即使被叫成功接受呼叫邀请,声网 RTM SDK 也不会将主叫或被叫加入指定频道。- 如果你的应用不涉及声网 Signaling SDK,我们推荐使用
LocalInvitation.setContent
或者RemoteInvitation.setResponse
方法设置自定义内容。
设置日志文件地址
支持通过调用 setLogFile
方法变更本地日志的默认地址。该方法无需在 login
成功之后调用,我们建议在创建 RtmClient
后即调用该方法,否则会造成日志文件显示不完整。
设置日志输出等级
支持通过调用 setLogFilter
方法将日志内容按照 OFF、CRITICAL、ERROR、WARNING 和 INFO 不同等级输出 。
该方法无需在
login
成功之后调用。
设置日志文件大小
支持通过 setLogFileSize
方法设置日志文件大小。日志的默认大小为 512 KB。低于该默认大小的设置无效。
该方法无需在
login
成功之后调用。
针对以下不同错误情况细化了错误代码
login
方法或 login
方法未调用成功该版本于 2019 年 6 月 7 日发布。
发送(离线)点对点消息
本版本支持发送离线消息。在开通离线消息后,用户不必等到接收端上线才能发送点对点消息。如果对端离线,消息服务器会为每个接收端存储 200 条离线消息长达七天。消息以队列形式存储。当离线消息超限时,最新存储的消息会导致最老的消息丢失。当发送端设置了离线消息,而此时消息接收端不在线,发送端会收到错误码:PEER_MESSAGE_ERR_CACHED_BY_SERVER
该方法的调用频率限制为每秒 60 条(点对点消息和频道消息一并计算在内)。
设置本地用户属性、查询指定用户属性
本版本支持设置和查询用户属性。每个用户属性为 key 和 value 的键值对。每个属性的 key 为 32 字节可见字符,每个属性的 value 的字符串长度不得超过 8 KB。单个用户的全部属性长度不得超过 16 KB。以下为本版本支持内容:
- 用户属性的相关操作必须在登录声网 RTM 系统成功后才能进行,否则 SDK 会返回错误码:
ATTRIBUTE_OPERATION_ERR_NOT_READY
- 设置的用户属性会在用户登出声网 RTM 系统后自动失效。
- 单次用户属性设置操作不得超过 16 KB,否则 SDK 会返回错误码:
ATTRIBUTE_OPERATION_ERR_SIZE_OVERFLOW
。- 用户属性设置相关操作的调用频率限制为每 5 秒 10 条,超限则 SDK 会返回错误码:
ATTRIBUTE_OPERATION_ERR_TOO_OFTEN
。- 获取用户属性相关操作的调用频率为每 5 秒 40 条,超限则 SDK 会返回错误码:
ATTRIBUTE_OPERATION_ERR_TOO_OFTEN
。
新增
JOIN_CHANNEL_ERR_FAILURE
。该版本于 2019 年 5 月 8 日发布。
查询用户在线状态
本版本引入了新的概念:在线和离线。一般情况下:
本版本增加了查询用户在线状态功能。你可以在登录声网 RTM 系统后查询最多 256 个指定用户的在线状态。详见: queryPeersOnlineStatus 接口。
- 返回的 Map 的 Use ID 的顺序以输入顺序为准。
- 返回的 Map 中与每个 User ID 对应的 BOOLEAN 值表示用户在线与否。
- 该方法的调用频率限制为每 5 秒 10 次。详见 限制条件 。
更新 Token
在安全性要求较高的情况下,你需要输入 Token 登录声网 RTM 系统。 每个 Token 都会在生成 24 小时后过期,本版本提供了 更新 Token 的功能。
- renewToken 方法必须在 创建 RtmClient 实例 后才能调用。
- 声网 RTM Token 的生成方式、输入参数与声网媒体 SDK 不同,详情请见: 校验用户权限 。
RenewToken
方法的调用频率限制为 2 次 / 秒。详见 限制条件 。
userId
参数。查询用户在线状态相关
新增
更新 Token 相关
新增
呼叫邀请相关
新增以下错误码覆盖用户在没有登录声网 RTM 系统的情况下发送呼叫邀请的错误情况:
该版本于 2019 年 4 月 4 日发布。
本版本不包含
setLogFile
和setLogFilter
方法。所有的日志信息默认保存在 #### /sdcard/<AppName>/agorartm.log#### 。
本版本增加了呼叫邀请功能。结合音视频一对一或一对多通话场景,你可以创建、发送、取消、接受或拒绝一个呼叫邀请。
ChannelMessageState
和 PeerMessageState
以简化发送频道消息和点对点消息流程。以错误码 ChannelMessageError
和 PeerMessageError
代替。IStateListener
类。改用 ResultCallback
类返回成功和错误回调。新增
RtmCallManager
实例的事件监听。重命名
RtmClient
实例的所有资源的 RtmClient.destroy()
方法更名为 RtmClient.release() 。IResultCallback
类更名为 ResultCallback 类。删除
PEER_MESSAGE_RECEIVED_BY_SERVER
,改用错误码 PEER_MESSAGE_ERR_OK
。CHANNEL_MESSAGE_RECEIVED_BY_SERVER
,改用错误码 CHANNEL_MESSAGE_OK
。PeerMessageState
接口,改用 PeerMessageError 。ChannelMessageState
接口,改用 ChannelMessageError 返回频道消息错误码。IStateListener
类,改用 ResultCallback 类监听点对点消息和频道消息结果。该版本于 2019 年 2 月 4 日发布。
首次发布。
关键功能