NIM SDK Android 稳定版更新日志

更新时间: 2024/07/15 15:35:57

本文介绍网易云信即时通讯 IM SDK(简称 NIM SDK)稳定版安卓端 v9.x.x 及以下版本的更新日志。有关 v10.x.x 版本,请参考《IM 即时通讯 V10》Android 更新日志

单击展开了解什么是稳定版、与开发版的区别、以及开发环境要求。

稳定版基于 开发版,可满足常见 IM 应用业务场景,但更注重稳定性。开发版则主要是在可商用的基础上,提供新功能与特性。

稳定版与开发版的主要差异点如下:

  • 稳定版相较开发版,在更长周期内获得了更多用户的验证,且修复了多个历史版本的已知问题,稳定性保障更佳。
  • 最新稳定版基于开发版 V9.17.0,后续稳定版在该版本基础上迭代。

稳定版要求项目开发环境满足至少以下条件:

环境要求 说明
JDK 版本 1.8.0 及以上版本
Android API 版本 API 21、Android 5.0 及以上版本
CPU 架构 ARM 64、ARM V7
IDE:Android Studio 4.0 及以上
其他 依赖 Androidx,不支持 support 库
请使用 Android 系统 5.0 或以上版本的移动设备

近期重要更新

  • 从 v8.9.126 起,新增动态查询连续完整的历史消息功能,具体请参考 动态查询历史消息
  • 从 v8.9.121 起,支持查询指定时间段内的服务端 Thread 历史消息,具体请参考 历史消息文档
  • 从 v8.9.113 起,第三方回调登录 支持第三方服务器采用动态 token 鉴权的场景。

9.17.0 (2024-07-04)

基于 NIM SDK 开发版 V9.17.0,推出最新稳定版,后续稳定版自 V9 系列开始迭代。

新增特性

性能优化

  • 推出最新稳定版,整体性能和稳定性进一步提升。
  • 存储上传稳定性提升,显著提高文件传输的稳定性和可靠性。
  • 多项内部优化,进一步提升性能。

API 新增

方法/回调/类 说明
QChatServerService.mute 在指定圈组服务器中对指定成员进行临时禁言或解除临时禁言。
QChatServerService.getMuteMemberByPage 在指定圈组服务器中分页查询被临时禁言的成员列表。
QChatChannelService.mute 在指定频道中对指定成员进行临时禁言或解除临时禁言。
QChatChannelService.getMuteMemberByPage 在指定频道中分页查询被临时禁言的成员列表。
getUncategorizedChannelsByPage 分页查询当前服务器中不在频道分组下的频道列表。
QChatChannelCategory 频道分组对象新增 reorderWeight 字段,表示自定义排序标识,在分页查询频道分组时可根据该字段进行自定义排序。
getChannelCategoriesByPage 查询频道分组列表接口的入参中新增 sortType(排序类型)和 cursor (分页)字段,可设置排序类型实现 按自定义权重排序 查询频道分组。

8.9.130 (2024-05-15)

修复已知问题。

8.9.129 (2024-04-07)

新增 logout(long timeout) 接口,在内部处理完成登出后回调登出成功的通知。

接口原型如下:

Java/**
 * @param timeout 登出允许的最大等待时间,单位毫秒。如 3 * 1000L
 * @return InvocationFuture 可设置回调函数,监听操作结果。
 */
public InvocationFuture<Void> logout(long timeout);

8.9.128 (2024-03-27)

升级数据库加密套件(SQLCipher)至 4.5.4 版本。

8.9.127 (2024-03-20)

改进优化

  • 优化未登录情况下消息发送逻辑。
  • 优化信令模块(呼叫功能)。
  • 其他内部优化。

8.9.126 (2024-02-23)

新增特性

支持根据 Thread 根消息查询本地 Thread 子消息。

API 变更

API
API 说明
queryLocalThreadTalkHistory 新增接口,用于根据 Thread 根消息查询本地 Thread 子消息。

8.9.125 (2024-02-02)

新增特性

新增动态查询连续完整的历史消息功能,具体请参考 动态查询历史消息

相较于频繁从云端获取,该查询方法在保证历史消息完整的同时,减少了耗时和耗能。

API 变更

方法/类/枚举 说明
getMessagesDynamically 动态查询连续完整的历史消息。

8.9.124 (2024-01-19)

新增特性

  • 支持按照群成员类型查询成员列表信息。(高级群和超大群)
  • 支持按照关键字检索群成员。(仅超大群)

API 新增

API API 说明
TeamService.getTeamMemberList/SuperTeamService.getTeamMemberList 按照群成员类型查询成员列表信息。
API 原型:getTeamMemberList(String teamId, NIMTeamMemberRoleTypeSearchOption option);
  • teamId:群组 ID
    NIMTeamMemberRoleTypeSearchOption 参数说明:
  • roleTypesTeamMemberType,群成员角色类型
  • offset:查询偏移,首次传 0,下一次调用传入上一次返回的 offset
  • orderSearchOrderEnum,查询方向,即返回结果按照 joinTime(进群时间)升序或降序排序。默认为时间降序。
  • limit:本次查询最大数量,默认为 10。
  • SuperTeamService.searchTeamMember 按照关键字检索群成员。
    API 原型:searchTeamMembers(NIMTeamMemberKeywordSearchOption option);
    NIMTeamMemberKeywordSearchOption 参数说明:
  • teamId:群组 ID
  • keyword:查询使用的关键字
  • offset:查询偏移,首次传 0,下一次调用传入上一次返回的 offset
  • orderSearchOrderEnum,查询方向,即返回结果按照 joinTime(进群时间)升序或降序排序。默认为时间降序。
  • limit:本次查询最大数量,默认为 10。
  • 8.9.123 (2024-01-12)

    内部优化。

    8.9.122 (2023-12-27)

    新增特性

    • 支持按会话类型批量清理未读数功能,具体请参考 指定类型的会话未读数清零

    • 支持获取指定类型的会话的消息未读数,具体请参考 获取指定类型的会话的消息未读数

    • 支持自行填入第三方厂商的推送 token。实现步骤如下:

      1. com.netease.nimlib.sdk.mixpush.IManualProvidePushTokenCallback 提供了自行传入推送 token 的回调类型,需要实现方法 Pair<MixPushTypeEnum, String> onToken(MixPushTypeEnum suggestedPushType)。方法中提供当前设备的 推荐推送类型,用户可参考推荐类型,并返 推送类型 + token 的键值对交由 SDK 处理。
      2. 通过调用 com.netease.nimlib.sdk.mixpush.NIMPushClientregisterManuallyProvidePushTokenCallback 方法注册 IManualProvidePushTokenCallback

    API 新增

    API API 说明
    clearUnreadCount 将指定类型的会话未读数清零(标记已读)。
    getUnreadCountBySessionType 获取指定类型的会话的消息未读数。
    com.netease.nimlib.sdk.mixpush.MixPushConfig 类新增 manualProvidePushToken 配置项 自行传入推送 token:
  • true:开启。需要用户自行传入厂商推送 token (Demo 在 DemoManualProvidePushTokenCallback 中已实现)。
  • false:(默认)关闭。由 NIM SDK 获取厂商推送 token。
  • 新增 com.netease.nimlib.sdk.mixpush.IManualProvidePushTokenCallback 回调 提供自行传入推送 token 的回调。

    8.9.121 (2023-12-08)

    新增特性

    • 支持查询指定时间段内的服务端 Thread 历史消息,具体请参考 历史消息文档

    • 为适配 vivo 推送升级,新增初始化参数,在获得用户隐私许可(agreePrivacyStatement)后才可开启并获取 vivo push token。

    API 新增

    API
    API 说明
    queryThreadTalkHistory 分页查询指定时间段内的云端 Thread 历史消息(单聊、群/超大群)。
    MixPushConfig 新增 vivoAgreePrivacyStatement 设置用户是否同意 vivo 推送隐私声明 agreePrivacyStatement。

    vivoAgreePrivacyStatement 原型:

    Java/**
     * 设置用户是否同意 vivo 推送隐私声明 agreePrivacyStatement:
     *   true:用户同意了隐私声明。
     *   false:未同意隐私声明,默认不同意。
     */
    public boolean vivoAgreePrivacyStatement = false;
    

    改进优化

    第三方推送升级至最新版本。

    第三方推送兼容版本

    v8.9.121 兼容的第三方推送 SDK 版本信息如下:

    第三方推送 版本
    华为 6.12.0.300
    小米 5.9.9
    OPPO 3.4.0
    vivo 3.0.0.7_488
    魅族 4.3.0
    荣耀 7.0.61.303
    FCM
    • firebase-messaging:23.2.1
    • firebase-analytics: 21.3.0

    8.9.119 (2023-10-19)

    • 优化第三方回调动态 Token 登录内部逻辑,具体请参考 通过第三方回调登录 IM
    • 修复数据库中群成员信息与服务端不一致的问题。

    8.9.118 (2023-08-29)

    • 支持配置消息提醒(本地通知消息)的类型,具体请参考 消息提醒类型
    • 修复 IPV6 URL 转换错误的问题。
    • 修复 NOS 文件上传失败的问题。
    • Android API 最低版本升级至 21(原 19)。

    8.9.117 (2023-07-20)

    • 支持在应用级别配置 SDK 日志打印的开关,减少 SDK 本地查询数据库的操作。
    • 取消未登录状态下发送消息的超时机制,直接返回未登录错误码。
    • deviceID 和 AppKey 以健值对的方案存储,传入 AppKey 即可获取 device ID。
    • 修复文件下载完成后,文件状态异常的问题。
    • 修复其他已知问题。

    8.9.116 (2023-06-14)

    优化内部逻辑。

    8.9.115 (2023-05-15)

    • 推送升级。
    • 修复其他已知问题。

    第三方推送兼容版本

    v8.9.115 兼容的第三方推送 SDK 版本信息如下:

    第三方推送 版本
    华为 6.9.0.300
    小米 5.6.2
    OPPO 3.1.0
    VIVO 3.0.0.4_484
    魅族 4.2.3
    荣耀 7.0.41.301
    FCM firebase-bom:28.4.2,具体版本:
    • firebase-messaging:23.0.0
    • firebase-analytics: 20.0.0

    8.9.114 (2023-04-27)

    • IM & 聊天室登录支持采用动态 Token 鉴权 & 动态 LoginExt 鉴权的场景。
    • 解决隐私合规问题。
    • 修复已登录场景下,数据库打开异常的问题。
    • 修复锁屏之后 observeOnlineStatus 回调过于频繁的问题。
    • 修复其他已知问题。

    8.9.113 (2023-03-31)

    • 第三方回调登录支持第三方服务器采用动态 token 鉴权的场景。

      如果用户登录 IM 时 token 已过期,IM 服务端会重新向第三方服务器发起登录回调请求,并获取新的 token。

    • 部分已知问题修复与优化。

    8.9.112 (2023-02-17)

    • 修复会话状态更新异常。
    • 修复登录超时后的重连机制异常。
    • 修复其他已知问题。

    8.9.111 (2023-01-31)

    修复数据上报完成后,在主线程中操作数据库时,可能导致卡顿或者应用程序无响应对话框 (ANR)的问题。

    8.9.109 (2022-12-15)

    新增特性

    • 支持聊天室定向消息功能。发送聊天室消息 支持消息接收者列表
    • 适配 Android v13.0.0
    • 解决隐私合规问题

    问题修复

    • 修复发送文件消息时文件上传失败但消息发送成功的问题
    • 修复获取群昵称异常问题
    • 修复偶现的所在高级群被提示已退出的问题
    • 修复其他已知问题

    第三方推送兼容版本

    v8.9.109 兼容的第三方推送 SDK 版本信息如下:

    第三方推送 版本
    华为 6.5.0.300
    小米 5.1.0
    OPPO 3.1.0
    VIVO 3.0.0.4_484
    魅族 4.1.0
    FCM firebase-bom:28.4.2,具体版本:
    • firebase-messaging:23.0.0
    • firebase-analytics: 20.0.0

    8.9.108 (2022-11-28)

    优化 SDK 内部判断当前所在进程的逻辑。

    8.9.107 (2022-11-08)

    SDK 包体积增量大小对比

    架构 稳定版(v8.9.107) 开发版(v9.6.3)
    arm64-v8a 9.73MB 23.64MB
    armeabi-v7a 7.38MB 17.66MB

    新增特性

    • 适配 Android v12.0.0
    • 支持数据上报(查看实时监控数据的基础)
    • 支持根据用户登录的 App Key 进行数据采集并上报
    • 支持聊天室动态登录

    问题修复

    • 去除 ssid 获取
    • 去除自启动和关联启动的行为
    • 修复 AES 加密问题
    • 去除用户未同意隐私条款前的调用逻辑
    • 修复超大群消息开启免打扰失效的问题
    • 修复应用启动时偶现的无法启动 NimService 问题
    • 修复聊天室偶现的无法收到消息的问题
    • 修复插入本地消息是否计未读数和主体未读数判断逻辑不一致的问题
    • 修复 Thread 的回复消息数与实际不符的问题
    • 修复偶现的日志崩溃问题
    • 修复其他已知问题

    第三方推送兼容版本

    v8.9.107 兼容的第三方推送 SDK 版本信息如下:

    第三方推送 版本
    华为 6.3.0.302
    小米 4.5.0
    OPPO 3.1.0
    VIVO 3.0.0.4_484
    魅族 4.1.0
    FCM firebase-bom:28.4.2,具体版本:
    • firebase-messaging:23.0.0
    • firebase-analytics: 20.0.0

    已知问题

    该版本 SDK 中未包含 全文检索插件nim-lucene-x.x.x.jar)。

    8.9.100 (2022-07-15)

    NIM SDK 稳定版首次发布。

    v8.9.100 兼容的第三方推送 SDK 版本信息如下:

    第三方推送 版本
    华为 6.3.0.302
    小米 4.5.0
    OPPO 3.0.0
    VIVO 3.0.0.4_484
    魅族 4.1.0
    FCM firebase-bom:28.4.2,具体版本:
    • firebase-messaging:23.0.0
    • firebase-analytics: 20.0.0
    此文档是否对你有帮助?
    有帮助
    去反馈
    • 近期重要更新
    • 9.17.0 (2024-07-04)
    • 8.9.130 (2024-05-15)
    • 8.9.129 (2024-04-07)
    • 8.9.128 (2024-03-27)
    • 8.9.127 (2024-03-20)
    • 8.9.126 (2024-02-23)
    • 8.9.125 (2024-02-02)
    • 8.9.124 (2024-01-19)
    • 8.9.123 (2024-01-12)
    • 8.9.122 (2023-12-27)
    • 8.9.121 (2023-12-08)
    • 8.9.119 (2023-10-19)
    • 8.9.118 (2023-08-29)
    • 8.9.117 (2023-07-20)
    • 8.9.116 (2023-06-14)
    • 8.9.115 (2023-05-15)
    • 8.9.114 (2023-04-27)
    • 8.9.113 (2023-03-31)
    • 8.9.112 (2023-02-17)
    • 8.9.111 (2023-01-31)
    • 8.9.109 (2022-12-15)
    • 8.9.108 (2022-11-28)
    • 8.9.107 (2022-11-08)
    • 8.9.100 (2022-07-15)