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 | 好友关系、黑名单变更等的监听接口 |
此文档是否对你有帮助?