Android SDK API
更新时间: 2024/04/25 13:53:01
本文介绍 Android SDK API 的概述性信息,并列出核心 API 与核心类或接口类,方便您查阅 API 信息。
SDK API 概述
点击查看 API 概述
接口类型
NIM Android SDK (以下简称 SDK)提供两种接口类,供开发者使用:
类型 |
说明 |
|---|---|
| 主动发起请求 | 接口名均以 Service 结尾,例如 AuthService |
| 作为观察者监听事件和变化 | 接口名均以 ServiceObserver 结尾,例如 AuthServiceObserver。个别太长的类名则直接以 Observer 结尾,例如 SystemMessageObserver。 |
- SDK 接口调用必须在主进程中进行,请在主进程中调用 SDK 的
XXXService提供的方法,在主进程中注册XXXServiceObserver的观察者(有事件变更,会回调给主进程的主线程)。 - 如果您的模块运行在非主进程,请自行实现主进程与非主进程的通信(
AIDL/Messenger/ContentProvider/BroadcastReceiver等 IPC 渠道)将主进程回调或监听返回的数据传递给非主进程。
返回值类型
SDK 提供三种接口返回值:
- 基本数据类型(同步接口)
InvocationFuture(异步接口)AbortableFuture(异步接口):异步接口基本都从主进程发起调用,然后在后台进程执行,最后再将结果返回给主进程
如果调用 AbortableFuture 异步接口,传输大量数据或者出现耗时很长的情况,可通过 abort 方法中断请求。例如上传下载、登录等。
异步接口可通过 RequestCallback 和 RequestCallbackWrapper 两种方式设置回调函数。
| 异步接口回调函数 | 说明 |
|---|---|
RequestCallback |
需要实现三个接口: 成功 onSuccess, 失败 onFailed, 异常 onException |
RequestCallbackWrapper |
需要实现 onResult。封装了成功、失败和异常三个接口,在参数上进行区分 |
SDK API 调用框架
自 v4.4.0 起,API 调用框架增强:
- 支持带 Looper 的非 UI 线程发起的异步 API 调用,直接回调到调用者线程。v4.4.0 之前版本会默认回调到 UI 线程。
- 提供异步强制转成同步的接口:
NIMClient#syncRequest,允许设置最大同步等待时间,支持非 UI 线程里需要同步调用云信 API的场景。 - 添加自动生成的 NIM SDK 类,您可直接采用
NIMSDK#getXXXService方法获取服务接口,不再需要传递 XXXService.class,简化 API 调用方式。其他插件自动生成的调用入口类为:NIMChatRoomSDK、NIMLuceneSDK。例如采用NIMSDK.getAuthService().login()替换NIMClient.getService(AuthService.class).login()。
SDK API 参考
点此进入:Android SDK API 参考
SDK 核心 API
以下仅列出 SDK 的部分核心 API,如需查阅其他 SDK API 信息,请参考下文的SDK 核心类/接口类或者直接进入Android SDK API 参考查询 API 名称。
初始化与登录
| API | 说明 | 对应 V10 API |
|---|---|---|
| init | 在 Application#onCreate 中初始化 SDK | NIMClient#initV2 |
| config | 在 Application#onCreate 中进行初始化配置 | 同上 |
| initSDK | 在 UI 进程主线程上按需进行初始化SDK,支持通过 SDKOptions#asyncInitSDK 配置为同步或异步初始化,并支持通过 SDKOptions#reducedIM 配置为弱 IM 模式,延迟加载push进程服务
| 同上 |
| getService | 获取各服务接口,例如获取 MsgService | 同 V9 API |
| getStatus | 获取当前用户的登录状态(在线状态) | V2NIMLoginService#getLoginStatus |
| getCurrentAccount | 获取当前用户的 IM 账号(accid) | V2NIMLoginService#getLoginUser |
| updateStrings | 当系统语言发生变化时,更新文案配置。配置不能立即生效,所有文案均需要在下次使用时才会生效 | 同 V9 API |
| getSdkStorageDirPath | 获取SDK数据目录路径,需要在初始化 SDK 之后调用 | 同 V9 API |
| getSDKVersion | 运行时获取当前 SDK 版本号 | 同 V9 API |
| login | 登录 IM | V2NIMLoginService#login |
| logout | 登出 IM | V2NIMLoginService#logout |
| kickOtherClient | 将同时在线的其他设备端踢下线 | V2NIMLoginService#kickOffline |
消息(单聊与群聊)
历史消息
| API | 说明 | 对应 V10 API |
|---|---|---|
| clearServerHistory | 清空服务端的单聊历史消息 | V2NIMMessageService#clearHistoryMessage |
| deleteRangeHistory | 根据时间范围删除本地历史消息 | 无 |
| searchMessageHistory | 从本地消息数据库搜索消息历史 | 无 |
| queryMessageListByUuid | 通过 uuid 批量获取历史消息 | V2NIMMessageService#getMessageListByIds |
| pullMessageHistoryEx | 从服务器拉取消息历史记录 | V2NIMMessageService#getMessageList |
| searchRoamingMsg | 云端聊天记录关键词查询 | V2NIMMessageService#searchCloudMessages |
| queryLastMessage | 查询同指定用户的最近一条消息 | 同 V9 API |
消息扩展
| API | 说明 | 对应 V10 API |
|---|---|---|
| replyMessage | 引用一条消息进行回复,形成消息回复树状结构(Thread) | V2NIMMessageService#replyMessage |
| queryThreadTalkHistory | 查询 Thread 聊天云端历史(支持单聊、群聊、超大群) | V2NIMMessageService#getThreadMessageList |
| addQuickComment | 添加快捷评论,如表情等 reaction | V2NIMMessageService#addQuickComment |
| removeQuickComment | 移除快捷评论 | V2NIMMessageService#removeQuickComment |
| queryQuickComment | 获取快捷评论列表 | V2NIMMessageService#getQuickCommentList |
| addCollect | 将某条消息添加为收藏 | V2NIMMessageService#addCollection |
| removeCollect | 批量移除收藏 | V2NIMMessageService#removeCollections |
| addMsgPin | PIN 一条消息 | V2NIMMessageService#pinMessage |
| updateMsgPin | 更新一条消息的 PIN | V2NIMMessageService#updatePinMessage |
| removeMsgPin | 移除一条消息的 PIN | V2NIMMessageService#unpinMessage |
会话列表
离线推送与消息提醒
| API | 说明 | 对应 V10 API |
|---|---|---|
| enable | 开启/关闭第三方离线推送服务 | 同 V9 API |
| setPushNoDisturbConfig | 设置推送免打扰时间 | 同 V9 API |
| setPushShowNoDetail | 设置离线推送是否不展示推送文案详情 | 同 V9 API |
| toggleNotification | 通知栏提醒开关控制。该方法只有在 SDKOptions#StatusBarNotificationConfig 配置不为空时调用才有效 | 同 V9 API |
群组
超大群
聊天室
圈组
圈组的 SDK API 数量较多,请前往下文的圈组核心类/接口类查阅圈组的 SDK API。
用户资料
| API | 说明 | 对应 V10 API |
|---|---|---|
| fetchUserInfo | 从服务器获取用户资料 | V2NIMUserService#getUserList |
| getAllUserInfo | 获取本地数据库中所有用户资料 | V2NIMUserService#getUserList |
| updateUserInfo | 更新本人的用户资料 | V2NIMUserService#getUserList |
| searchUserInfosByKeyword | 搜索与关键字匹配的所有用户 | V2NIMUserService#searchUserByOption |
好友关系
SDK 核心类/接口类
以下仅列出 SDK 的核心类和接口类,如需查阅其他类或接口类的信息,请进入Android SDK API 参考搜索与查阅。
初始化与登录相关
| 类/接口 | 说明 |
|---|---|
| NIMClient | SDK 核心类,提供初始化 SDK,获取各个服务能力接口,获取当前状态等接口 |
| SdkLifecycleObserver | SDK 生命周期观察者接口类,提供监听主进程初始化状态的接口 |
| MiscService | 杂项接口类,提供日志文件上传、SDK 本地缓存、获取云信服务端时间等接口 |
| AuthService | 用户认证服务接口类,提供用户登录登出业务相关接口 |
| AuthServiceObserver | 用户认证服务观察者接口类,提供用户登录登出相关监听接口 |
消息(单聊 & 群聊)与会话相关
| 类/接口 | 说明 |
|---|---|
| MessageBuilder | 云信 IM 消息构造器,提供构建各类型消息的接口 |
| MsgService | 云信消息服务接口类,提供消息发送、消息查询、历史消息、消息扩展功能、获取未读数、已读回执、会话列表等相关接口 |
| MsgServiceObserve | 云信 IM 消息服务观察者接口类,提供消息、会话等的监听接口 |
| AudioRecorder | 高清语音录制工具类,提供语音录制相关接口 |
| AudioPlayer | 和AudioRecorder对应音频播放器,提供语音播放相关接口 |
| NosService | 网易云存储服务(NOS)接口类,提供云存储相关接口 |
| SystemMessageService | 云信 IM 系统通知接口类,提供系统通知查询和管理接口 |
| SystemMessageObserver | 云信 IM 系统通知观察者接口类,提供系统通知相关监听接口 |
| LuceneService | 全文检索接口类,提供会话检索相关接口 |
第三方离线推送相关
| 类/接口 | 说明 |
|---|---|
| MixPushService | IM 的第三方离线推送服务接口类,提供 IM 的第三方离线推送服务相关配置接口 |
群组相关
| 类/接口 | 说明 |
|---|---|
| TeamService | 群组接口类,提供创建群组、添加群成员等群组操作相关接口 |
| TeamServiceObserver | 群组观察者接口类,提供监听群组成员变动、资料变动等的监听接口 |
超大群相关
| 类/接口 | 说明 |
|---|---|
| SuperTeamService | 超大群服务接口类,提供超大群成员管理、超大群消息发送、超大群资料管理等相关接口 |
| SuperTeamServiceObserver | 超大群观察者接口类,提供超大群监听接口 |
聊天室相关
| 类/接口 | 说明 |
|---|---|
| ChatRoomService | 聊天室服务接口类,提供进出聊天室、发送聊天室消息、聊天室成员管理、聊天室队列服务、聊天室标签等接口 |
| ChatRoomMessageBuilder | 聊天室消息构造器,提供构造各类型聊天室消息的接口 |
| ChatRoomServiceObserver | 聊天室观察者接口类, 提供聊天室监听接口 |
圈组相关
| 类/接口 | 说明 |
|---|---|
| QChatService | 圈组接口类,提供圈组登录登出相关接口 |
| QChatServerService | 圈组服务器接口类,提供圈组服务器相关接口,如果创建服务器、邀请服务器成员、查询服务器成员等 |
| QChatChannelService | 圈组频道接口类,提供圈组频道相关接口,如果创建频道、查询频道、查询频道未读信息等接口 |
| QChatMessageService | 圈组消息接口类,提供发送消息、撤回消息、发送消息正在输入事件等接口 |
| QChatServiceObserver | 圈组观察者接口类,提供圈组监听接口 |
| QChatPushService | 圈组的第三方离线推送服务接口类,提供圈组的第三方离线推送服务相关配置接口 |
| QChatMediaKit | 圈组多媒体频道接口类,提供圈组多媒体频道的初始化、连接、修改多媒体频道参数等接口 |
| QChatRTCChannelController | 圈组多媒体频道控制器,提供多媒体频道成员管理、摄像头切换、扬声器管理、视频画布设置等接口 |
| QChatRTCChannelListener | 圈组多媒体频道事件监听器,提供多媒体频道的监听接口 |
用户资料相关
| 类/接口 | 说明 |
|---|---|
| UserService | 用户资料操作相关接口,如更新本人的用户资料、搜索与关键字匹配的用户等 |
| UserInfoProvider | 用户信息提供者,由开发者提供用户信息给 SDK |
好友关系相关
| 类/接口 | 说明 |
|---|---|
| FriendService | 好友关系服务接口类,提供好友管理、好友关系、黑名单、消息提醒等相关接口 |
| FriendServiceObserve | 好友关系、黑名单变更等的监听接口 |
此文档是否对你有帮助?





