云信 Android SDK 更新记录

[4.3.0] - 2017-10-12

新增

1. 添加聊天室独立登录模式:EnterChatRoomData#setIndependentMode。

2. 添加批量清空所有会话未读数接口:MsgService#clearAllUnreadCount。

3. 添加支持多类型的本地消息历史搜索接口:MsgService#queryMessageListByTypes。

4. 添加大群清理逻辑。

5. 添加全员广播消息,通过注册观察者接口接收广播消息:MsgServiceObserve#observeBroadcastMessage。

6. 群消息支持 "只接收管理员消息提醒" 的免打扰选项。影响类和接口:

7. 添加动图缩略图下载选项:SDKOptions#animatedImageThumbnailEnabled,支持下载原图或者第一帧图像(默认)。

8. 添加聊天室获取机器人列表接口:ChatRoomService#pullAllRobots。

9. 添加后台自动断网重连策略可选开关 SDKOptions#enableSDKBackgroundReconnectStrategy。

[4.2.0] - 2017-09-12

新增

1. 添加聊天室 bot 机器人功能,添加机器人上行消息构建接口:ChatRoomMessageBuilder#createRobotMessage。

2. 登录选项添加群通知消息是否计入未读数开关:SDKOptions#teamNotificationMessageMarkUnread。

变更

1. 对单个用户所在群的数量添加限制,影响到接口:

如果邀请成员中有群数量超过限制,返回码仍然是成功,并且同时返回这部分超限的账号。

2. 解决登录偶现登录 417 问题。

3. 添加登录同步失败情况处理。

4. 添加 IPC ACK 机制,解决极端情况下群消息丢失的问题。

5. 解决 HttpDownload 安全警告问题。

[4.1.0] - 2017-08-08

新增

1. SDK 发送群自定义通知支持离线。

2. 多端登录客户端类型 ClientType 添加 Mac 端。

变更

1. SDK 后台运行机制调整,避免由于系统后台限制导致 push 进程消息队列无法消化引发的各种问题,减少不必要的系统资源开销。

2. 针对系统 Binder 状态异常导致 IPC 无法建立的问题,添加重置机制。

3. 华为推送添加通知栏清理回调接口 MixPushMessageHandler#cleanHuaWeiNotifications,开发者可自行决定通知栏的清除行为。

4. SDK 唤醒方式调整以适配即将发布的 Android O 版本,强烈建议开发者在清单配置文件中加上 项,具体配置信息请参考开发者文档。

5. NOS https 上传资源过程中如果发生证书认证失败,将切换成默认域名进行上传。

6. SDK 切换 LBS Link 地址时机调整,当从未登录成功时,采用前台策略。

[4.0.0] - 2017-07-06

新增

1. 接入华为推送服务。

2. 接入网易Bot(智能机器人)功能,增加 RobotServiceRobotServiceObserve 接口。

3. 新增聊天室发消息是否存历史记录的开关,发送聊天室消息时可以选择是否存入历史记录。

4. 聊天室连麦队列变更后数据同步。

变更

1. 被叫语音、视频通话未接听计入未读数。

2. 修复接收聊天室 tip 消息获取 content 为空的问题。

[3.9.0] - 2017-06-23

变更

1. 添加 NOS 请求频率控制。

2. 断网重连策略调整,修复 APP 长时间在后台网络受限,回到前台无法立即重连的问题。

[3.8.0] - 2017-06-06

新增

1. 聊天室针对固定成员,支持 nick, avatar 和 extension 字段的持久化。

变更

1. 针对 oppo 手机 IPC 异常问题添加容错处理。

2. 修复全文检索偶现的 InternalError 问题。

3. 针对解包出错的极端情况添加容错处理。

[3.6.0] - 2017-04-27

新增

1. 事件订阅服务:EventSubscribeService,提供如下接口:

2. 事件订阅监听:EventSubscribeServiceObserver,提供如下接口:

3. IM Demo 实现在线状态展示。

4. 支持设置消息提醒通知栏 smallIcon 背景颜色,StatusBarNotificationConfig#notificationColor。

5. 本地消息清空后,别人再撤回消息,可收到消息撤回的通知

变更

1. 小米推送升级 V3.2.2 版本,解决部分小米手机升级到 Android 7.0 之后初始化推送崩溃、收不到推送的问题。

2. IM Demo 更换通知栏透明 smallIcon。

[3.5.0] - 2017-03-15

新增

1. 聊天室历史记录拉取接口: pullMessageHistoryEx,支持查询方向按时间点向前或者向后。

变更

1. AudioRecorder 高清语音录音组件异步化,使用子线程开始、结束录音,UIKit 同时修改适配。

2. 通知栏样式变更:

3. SDK 心跳机制优化,缩短弱网环境下连接失效时上层的感知时间。

4. LBS 机制优化,避免应用在后台受到网络限制时耗尽可用的 Link 地址。

[3.4.0] - 2017-01-20

变更

1. 文件断点续传优化。

2. 修复文件下载过程中调用 cancel 接口后无状态回调的问题。

3. 登录优化,解决特殊场景下出现的服务异常的情况。

4. SDKOptions 添加是否提高 SDK 进程优先级可选项,用户可根据例外机型或例外系统版本停用此进程保护方式。

5. SDK 内部 http 地址替换为 https 地址。

[3.3.0] - 2016-12-28

新增

1. UIKit 优化,降低接入复杂度。

2. UIKit 基于强推消息实现群组 @ 功能。

3. 进入聊天室接口支持可配置重试次数:ChatRoomService#enterChatRoomEx。

4. 添加消息通知栏展示样式配置(折叠或者展开):StatusBarNotificationConfig#notificationFolded。默认是折叠,即云信消息端内消息提醒最多之占一栏;也可以设置为展开,达到端内、端外通知栏提醒一致的表现。

5. 聊天室通知消息中加入新的附件类型:ChatRoomTempMuteAddAttachment 可获取临时禁言时长, ChatRoomTempMuteRemoveAttachment 可获取解禁提前的时长,ChatRoomRoomMemberInAttachment 可获取进入聊天室的用户是否被禁言,是否被临时禁言以及临时禁言时长。

6. 添加文档转码:

变更

1. SDK IPC 唤醒方式修改。

2. SDK HTTP 网络库更新。

3. NOS 资源传输支持 HTTPS。

4. NOS 上传优化,修复文件传输过程中出现断网,偶现重连后无法继续上传的问题。

5. 聊天室断网重连机制优化。

6. SDK 初始化异常问题优化。

7. SDK 网络层偶现的空指针问题修复。

8. SDK 多线程问题优化。

9. 手动登录返回 408,415 时进行网络检测并输出到日志。

10. SDK 收到新消息后不再发送 Action 为 ACTION_RECEIVE_MSG 的广播通知。若开发者依赖此广播实现接收消息,在升级 SDK 请改为使用 Observer 监听的方式接收消息。

[3.2.0] - 2016-11-30

新增

1. 添加第三方推送服务:NIMPushClient,MixPushService,目前已接入小米推送。

2. 添加会话未读数多端同步功能,开关为 SDKOptions#sessionReadAck,默认关闭。

3. 添加第三方推送免打扰设置:MixPushService#setPushNoDisturbConfig。

4. 添加本地消息拉取扩展接口:MsgService#queryMessageListExTime,支持时间和条数共同限定结果集。

变更

1. 最低支持版本变更为Android 4.0 (Ice Cream Sandwich), 其中音视频通话最低支持版本为Android 4.1 (Jelly Bean)。

2. 登录优化。

3. 消息撤回优化,针对离线时对方发送消息并撤回的场景,下次登录时会收到 MsgServiceObserve#observeRevokeMessage 通知,可以获得被撤回消息的时间,便于在 UI 上展现离线期间消息撤回的提示。

[3.1.0] - 2016-10-26

新增

1. 添加发送消息时的反垃圾配置 IMMessage#setNIMAntiSpamOption。

2. 添加查询被禁言群成员列表接口 TeamService#queryMutedTeamMembers。

3. 添加群全员禁言通知。

4. 添加聊天室全员禁言通知。

5. 文件传输添加动态分块策略。

变更

1. SDK 网络库精简及优化。

2. 修正部分手机 UI 进程被 Kill , push 进程无法感知导致下次 UI 重启时没有同步在线状态的问题。

3. 修正联想某型号手机退后台长时间后回到前台无法重连成功的问题。

4. 修正 MsgService#saveMessageToLocalEx 接口发送第一条消息,最近联系人列表收不到通知的问题。

5. MsgService#queryMessageListByUuidBlock 接口支持 sending 状态的返回。

6. 引入 JobScheduler, Android 5.0+ 能起到一定的保活效果;修改提高 push 进程优先级保活方案的适用版本。

[3.0.0] - 2016-10-20

变更

1. 修改多端登录获取登录时间为空的问题。

[2.9.0] - 2016-09-19

新增

1. 添加聊天室成员是否被临时禁言和临时禁言解除时长字段:ChatRoomMember#isTempMuted, ChatRoomMember#getTempMuteDuration。

变更

1. 聊天室断线重连时间优化。

2. 聊天室发包频控优化。

3. MsgService#saveMessageToLocal(IMMessage, boolean, long) 改名为 MsgService#saveMessageToLocalEx(IMMessage, boolean, long)。

[2.8.0] - 2016-08-30

新增

1. 添加消息撤回功能:MsgService#revokeMessage, MsgServiceObserve#observeRevokeMessage。

2. 添加删除指定会话的漫游消息接口:MsgService#deleteRoamingRecentContact。

3. 新增保存消息到本地接口:MsgService#saveMessageToLocal 可以设置消息存储的时间点。

4. 消息中添加获取消息发送方类型接口:IMMessage#getFromClientType。

变更

1. 精简全文检索插件包大小。

2. 清空会话本地消息记录 MsgService#clearChattingHistory 接口保留 RecentContact 中的 tag, extension, time 属性。

[2.7.0] - 2016-08-11

新增

1. 添加全文检索插件,目前支持消息全文检索及高亮,支持分页查询,接口为 LuceneService。 此外,MsgService 中也提供基于SQL Like方式的实现。

2. 添加 SDK 发包频控控制。

3. 添加聊天室队列服务(针对直播连麦场景使用)。

4. 添加指定成员强制推送功能(主要针对群):IMMessage#memberPushOption。

5. 添加 PC/Web 端在线时可配置是否推送的开关 SettingService。

6. 添加获取群邀请和群踢人通知附件的扩展字段:MemberChangeAttachment#getExtension。

7. 添加更新聊天室信息接口 ChatRoomService#updateRoomInfo ,更新本人聊天室成员信息接口 ChatRoomService#updateMyRoomRole。

8. 添加登录时同步本人所在的所有群的本人群成员资料信息。

9. 优化 SDK 登录同步流程。

[2.5.0] - 2016-07-08

新增

1. 添加文本消息的全局搜索接口:MsgService#searchAllMessageHistory。

2. 添加消息转发功能:MessageBuilder#createForwardMessage,支持除通知消息和音视频消息以外的消息类型。

3. 添加聊天室临时禁言接口:ChatRoomService#markChatRoomTempMute,支持设置临时禁言时长。

变更

1. 将注册群通知消息过滤接口移动到 MsgService 中:MsgService#registerIMMessageFilter ,并支持单聊和群聊的通知类型消息过滤,不再限于群通知消息,同时支持音视频类型消息过滤。

2. 聊天室架构调整,聊天室业务仅在 UI 进程处理。

3. SDK 输出jar包按模块分离:nim-sdk.jar(必须)、nim-chatroom.jar(可选聊天室模块)、nim-rts.jar(可选实时会话白板模块)、nim-avchat.jar(可选实时音视频模块)、nrtc-sdk.jar(实时会话、实时音视频基础库),供开发者按需组合使用。

[2.4.0] - 2016-06-02

新增

1. 升级群组功能:添加群邀请模式、被邀请模式、群资料修改模式、群资料扩展字段修改模式、群头像、群成员是否被禁言、群成员扩展字段等属性。

2. 添加群禁言功能 TeamService#muteTeamMember,禁言后,群成员都会收到一条通知类消息,附件为 MuteMemberAttachment。

3. 添加修改自己的群成员扩展字段接口 TeamService#updateMyMemberExtension。

4. 添加发送消息配置项:消息是否支持路由(抄送) CustomMessageConfig#enableRoute。

5. 添加群通知消息过滤接口:MsgService#registerTeamNotificationFilter,支持由上层决定群通知消息是否需要持久化。

6. 添加漫游消息通知接收消息监听接口。

7. 通知栏提醒支持呼吸灯配置:StatusBarNotificationConfig#ledARGB、StatusBarNotificationConfig#ledOnMs、StatusBarNotificationConfig#ledOffMs。

8. 添加静音列表变更通知:FriendServiceObserve#observeMuteListChangedNotify。

变更

1. 优化网络心跳唤醒方式。

2. 提高云信服务进程系统优先级,降低被系统杀死的概率。

3. 适配 Android M+ 外部存储读写权限开启后,日志写入无法立即生效的问题。

4. UserService#fetchUserInfo 添加单次请求账号数量上限150,超过150需要上层做分批请求,否则抛出 IllegalArgumentException。

5. MsgService#searchMessageHistory 接口去掉文本消息类型限制,参照 content 字段进行关键字匹配。

6. 完善 AuthService#openLocalCache 接口逻辑。

[2.3.0] - 2016-05-18

变更

1. 修正日志超过 8M 未裁剪的问题。

2. 修正 SDK 初始化过程中部分机型偶现空指针的问题。

[2.2.0] - 2016-04-28

新增

1. LoginInfo 中添加可选属性 AppKey,支持在登录时设置 AppKey。

2. 消息中添加获取发送者昵称接口:IMMessage#getFromNick。

3. 进入聊天室前,如果 IM 未成功登录,将上报错误码1000。

4. 群组添加批量移除群成员接口:TeamService#removeMembers。

5. 扩展字段支持 Map、List、JsonObject、JsonArray 的嵌套。在解析扩展字段时,如果 JSON 解析成 Map 失败将原字符串返回(放入返回的 Map 中,key 为 ext)。

6. 添加获取 SDK 数据缓存目录接口:NimClient#getSdkStorageDirPath。

7. 聊天室断线重连机制优化。

8. 聊天室添加获取断线重连(自动登录)失败的错误码接口:ChatRoomService#getEnterErrorCode。

[2.1.2] - 2016-04-06

新增

1. 进入聊天室时支持设置通知的扩展字段 notifyExtension,设置后,在收到聊天室通知消息时,通过 ChatRoomNotificationAttachment 获取此扩展字段。

[2.1.1] - 2016-03-28

新增

1. 聊天室 ChatRoomMessageBuilder 支持更丰富的消息类型。

2. 进入不存在的聊天室返回错误码404。

[2.1.0] - 2016-03-24

新增

1. MsgService 添加已读回执功能。

2. 添加 RTSNotifyOption、AVChatNotifyOption,可自定义音视频、白板的 iOS 推送通知。

变更

1. 创建 Tip 消息接口变更:MessageBuilder#createTipMessage 去掉最后一个参数 Map content,早期版本请根据该接口返回的 IMMessage 对象来 setRemoteExtension。

2. RTSOptions 去掉 pushContent、 extra字段,新版本使用 RTSNotifyOption。

3.\ 优化 App 从后台切到前台时断网重连机制。

4.\ 修复部分系统偶现后台进程活着但UI进程收不到消息提醒的问题。

[2.0.1] - 2016-02-29

变更

1. RTSManager 去掉铃声配置接口,铃声交由上层自定义实现。

2. MsgService#updateRecent 接口改成同步接口。

[2.0.0] - 2016-02-22

新增

1. 添加聊天室功能 SDK:ChatRoomService。

2. 去掉 libs 下 netty-4.0.23-for-yx.final.jar。

[1.8.0] - 2016-01-18

新增

1. RecentContact 类添加扩展字段(本地使用)。

2. SDKOption 类添加消息提醒(通知栏提醒)内容定制接口: MessageNotifierCustomization。

3. 添加未登录时访问 SDK 本地数据接口:AuthService.openLocalCache。

4. IMMessage 和 CustomNotification 的扩展字段支持嵌套。

5. 添加更新本地扩展字段接口:MsgService.updateIMMessage。

6. 保存消息到本地接口:MsgService.saveMessageToLocal 支持设置是否计入最近联系人未读计数。

变更

1. 断网后立即上报状态(去掉延时上报机制),上层感知到的网络状态变更更加灵敏供开发者自由发挥。

[1.7.1] - 2015-12-05

变更

1. 修复断网时登录无响应的问题(影响版本1.6.0及1.7.0)。

2. 修复被拉进群后,收到第一条群消息时,通知栏无法显示昵称的问题。

3. UserService.getUserInfo(List accounts) 接口名称更改为UserService.getUserInfoList(List accounts)。

[1.7.0] - 2015-12-01

新增

1. IMMessage 类添加扩展字段(服务器扩展字段和本地扩展字段)。

2. IMMessage 类添加推送文案、自定义推送属性。

3. IMMessage 类添加消息配置选项,发送消息时可以指定该消息是否计入未读数。

4. IMMessage 类添加消息配置选项,发送消息时可以指定该消息是否需要推送(消息提醒)。

5. IMMessage 类添加消息配置选项,发送消息时可以指定该消息是否推送昵称(接收方针对iOS有效)。

6. CustomNotification 类添加通知配置选项,发送通知时可以指定该通知是否需要推送(消息提醒)。

7. CustomNotification 类添加通知配置选项,发送通知时可以指定该通知是否推送昵称(接收方针对iOS有效)。

8. CustomNotification 类添加通知配置选项,发送通知时可以指定该通知是否计入未读数。

9. CustomNotification 类添加自定义推送属性。

10. 添加通过消息ID批量获取IMMessage接口: MsgService.queryMessageListByUuidBlock 和 MsgService.queryMessageListByUuid。

11. 添加通过消息类型查询消息历史接口: MsgService.queryMessageListByType。

12. 添加更新好友备注名、好友关系扩展字段接口: FriendService.updateFriendFields。 Friend 类添加获取好友备注名、好友关系扩展字段方法。

13. 添加根据类型查询系统通知列表接口:SystemMessageService.querySystemMessageByType。

14. 添加查询指定类型的系统通知未读数总和接口:SystemMessageService.querySystemMessageUnreadCountByType。

15. 添加将指定类型的系统通知设为已读接口:SystemMessageService.resetSystemMessageUnreadCountByType。

16. 添加清空指定类型的系统通知接口:SystemMessageService.clearSystemMessagesByType。

17. AudioRecorder 类添加获取当前录音时最大振幅接口:AudioRecorder.getCurrentRecordMaxAmplitude。

18. UserInfoProvider 类添加自定义通知栏消息提醒发送者显示名称接口:UserInfoProvider.getDisplayNameForMessageNotifier。

19. 添加新的消息类型Tip:MessageBuilder.createTipMessage,主要用于会话内的通知提醒的场景。

20. TeamMember 类添加判断该成员是否有效(是否还在群中)的接口:TeamMember.isInTeam ,当群成员退出或被移除后, SDK 通知群成员变化时会将 isInTeam 置为 false。

变更

1. SystemMessageType 去掉 DeleteFriend ,由 SDK 内部处理好友删除,该系统通知不再上报。

2. 修复群成员退出或者被移除后 TeamServiceObserver.observeMemberRemove 监听没有回调的问题。

[1.6.0] - 2015-11-02

新增

1. 添加查询系统通知列表(同步版本)接口: SystemMessageService.querySystemMessagesBlock 。

2. 添加登录同步数据状态通知接口: AuthServiceObserver.observeLoginSyncDataStatus 。

3. 添加查询未读消息总数接口: MsgService.getTotalUnreadCount 。

4. 添加设置单条系统消息为已读接口: SystemMessageService.setSystemMessageRead 。

5. AudioPlayer 支持听筒/扬声器播放。

变更

1. 修改 FriendChangedNotify 类,在好友关系变更通知中批量返回增加、更新、被删除的的好友关系。

2. 修改 BlackListChangedNotify 类,在黑名单变更通知中批量返回被拉黑、移出黑名单的帐号列表。

[1.5.0] - 2015-09-29

新增

1. 用户资料托管。

2. 数据通道服务,基于数据通道服务实现白板功能。

3. UI组件新增:通讯录列表、联系人选择器、群名片。

[1.4.0] - 2015-09-02

新增

1. 好友系统托管。

2. 黑名单设置。

3. 消息提醒开关设置。

4. 开源UI组件,集成更方便。

5. SDK 调用接口回调增加 RequestCallbackWrapper 类,将 RequestCallback 的3个回调函数合并为1个,方便开发者调用。

6. MsgService 增加 saveMessageToLocal 接口,用于开发者保存一些tips类的本地消息,同时 IMMessage 放开更多设置接口。

7. MsgService 增加单独清空最近联系人未读数接口:clearUnreadCount。

8. 给部分不需要网络请求的接口增加了同步调用版本,这些同步调用接口以 *Block 结尾。

9. 增加 UserInfoProvider 接口,并在 SDKOptions 中增加设置,用于云信内建的状态栏通知显示用户头像和自定义名字。

变更

1. 因为架构调整,需要在AndroidManifest文件中增加组件申明:

<!-- 云信进程间通信receiver -->
<receiver android:name="com.netease.nimlib.service.ResponseReceiver"/>

2. SDK 架构调整,SDK 主要业务逻辑改为工作在 UI 进程,push 进程更轻量,占用资源更少,收到消息后就启动 UI 进程,用户打开 APP 更快速。

3. 收到新消息,新系统消息,新自定义通知后,UI 进程会被唤起,因此除了使用 Receiver 外,也可以直接使用 observer 接口监听。

4. 云信 appKey 除了在 AndroidManifest 中配置外,也可以在 SDKOptions 中进行设置,并优先采用 SDKOptions 中的设置。

[1.3.0] - 2015-07-31

新增

1. 增加搜索本地消息历史纪录的接口: MsgService.searchMessageHistory。

2. 新增一个更方便使用,更灵活的批量获取本地消息历史纪录的接口: MsgService.queryMessageListEx。

3. 增加语音转文字的接口:MsgService.transVoiceToText。

4. 增加了一个后台保活的 jar 包,增强程序健壮性。

5. 自定义消息增加生命周期和推送参数的自主配置: CustomMessageConfig。

变更

1. 发送消息的回掉函数改为到最终发送完成时才回调了,如果发送失败,开发者可以清楚的知道错误码是什么。

2. 修改群组资料改为可以同时修改多个字段了。

3. 因为架构调整,需要在AndroidManifest文件中增加组件申明:

<!-- 运行后台辅助服务 -->
<service
     android:name="com.netease.nimlib.service.NimService$Aux"
     android:process=":core"/>

bug修复

1. 修改服务进程在后台时可能会被系统杀掉导致 UI 上自定义消息无法解析,新消息提醒设置失效的 bug。

[1.2.0] - 2015-06-23

新增

1. 群组增加消息提醒开关设置。

2. 有多端同时在线时,可以给其他端发送消息,可以踢其他端下线。

3. 增加设置消息推送内容的接口。

bug修复

1. 修正多个进程调用 SDK 接口时,回调可能混乱的问题。

[1.1.0] - 2015-05-25

新增

1. 支持的 android 系统版本由 2.2 升级到 2.3。

2. 消息数据库去掉加密选项,去掉对 sqlcipher 的依赖。

3. 整合透传指令和自定义系统通知,使接口更方便,概念更清晰。

4. 增加从服务器拉取消息记录功能。

5. 增加文件消息类型。

6. 新消息通知栏提醒的文案改为可自定义。

7. 增加语音消息播放 API (AudioPlayer)。

8. 增加多端登录状态接口。

9. 高级群增加两个扩展字段,可第三方应用自由定义和使用。

变更

1. CommandMessage 和 CustomSystemNotification 统一改为 CustomNotification,对应 MsgService 的 sendCommandMessage 接口改为 sendCustomNotification,AndroidManifest 文件中 Receiver 声明的 Action 对应改为 “.ACTION.RECEIVE_CUSTOM_NOTIFICATION”。

2. IMMessage 的接口精简,去掉大部分setter 接口,去掉了用于内部使用的 getter 接口。去掉的 getter 接口包括:getMessageId (可改用getUuid),getServerId,getAttachStr。

3. MsgAttachment 不再需要实现 formJson 接口。

4. RecentContact 去掉 getSortTag 和 getSortTime 接口(以前没有实现),增加 getTag 和 setTag 接口。

5. MsgTypeEnum.picture -> MsgTypeEnum.image。

[1.0.0] - 2015-03-27

云信发布了!