public class RongIM
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
static void |
addOnReceiveMessageListener(RongIMClient.OnReceiveMessageWrapperListener listener)
设置接收消息的监听器。
所有接收到的消息、通知、状态都经由此处设置的监听器处理。包括私聊消息、讨论组消息、群组消息、聊天室消息以及各种状态。
|
void |
addToBlacklist(java.lang.String userId,
RongIMClient.OperationCallback callback)
将某个用户加到黑名单中。
|
void |
addUnReadMessageCountChangedObserver(UnReadMessageManager.IUnReadMessageObserver observer,
Conversation.ConversationType... conversationTypes)
设置未读消息数变化监听器。
注意:如果是在 activity 中设置,那么要在 activity 销毁时,
调用
UnReadMessageManager.removeObserver(UnReadMessageManager.IUnReadMessageObserver)
否则会造成内存泄漏。 |
void |
cancelDownloadMediaMessage(Message message,
RongIMClient.OperationCallback callback)
取消下载多媒体文件。
|
void |
cancelSendMediaMessage(Message message,
RongIMClient.OperationCallback callback)
取消发送多媒体文件。
|
void |
clearConversations(RongIMClient.ResultCallback callback,
Conversation.ConversationType... conversationTypes)
清空所有会话及会话消息,回调方式通知是否清空成功。
|
void |
clearMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
<any> callback)
根据会话类型,清空某一会话的所有聊天消息记录,回调方式获取清空是否成功。
|
void |
clearMessagesUnreadStatus(Conversation.ConversationType conversationType,
java.lang.String targetId,
<any> callback)
根据会话类型,清除目标 Id 的消息未读状态,回调方式获取清除是否成功。
|
void |
clearTextMessageDraft(Conversation.ConversationType conversationType,
java.lang.String targetId,
<any> callback)
清除某一会话的文字消息草稿,回调方式获取清除是否成功。
|
static void |
connect(java.lang.String token,
int timeLimit,
RongIMClient.ConnectCallback connectCallback)
连接服务器,在整个应用程序全局,只需要调用一次。
|
static void |
connect(java.lang.String token,
RongIMClient.ConnectCallback connectCallback)
连接服务器,在整个应用程序全局,只需要调用一次。
|
void |
deleteMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
<any> callback)
清除指定会话的消息
|
void |
deleteMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
int[] messageIds,
<any> callback)
删除指定的一条或者一组消息,回调方式获取是否删除成功。
|
void |
deleteRemoteMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
Message[] messages,
RongIMClient.OperationCallback callback)
删除指定的一条或者一组消息。会同时删除本地和远端消息。
|
void |
disconnect()
断开连接(断开后继续接收 Push 消息)。
|
void |
downloadMedia(Conversation.ConversationType conversationType,
java.lang.String targetId,
RongIMClient.MediaType mediaType,
java.lang.String imageUrl,
RongIMClient.DownloadMediaCallback callback)
下载文件。
用来获取媒体原文件时调用。如果本地缓存中包含此文件,则从本地缓存中直接获取,否则将从服务器端下载。
|
void |
downloadMediaFile(java.lang.String uid,
java.lang.String fileUrl,
java.lang.String fileName,
java.lang.String path,
IRongCallback.IDownloadMediaFileCallback callback)
下载文件
支持断点续传
|
void |
downloadMediaMessage(Message message,
IRongCallback.IDownloadMediaMessageCallback callback)
下载文件。和
downloadMedia(Conversation.ConversationType, String, RongIMClient.MediaType, String, RongIMClient.DownloadMediaCallback) 的区别是,该方法支持取消操作。
用来获取媒体原文件时调用。如果本地缓存中包含此文件,则从本地缓存中直接获取,否则将从服务器端下载。 |
void |
enableNewComingMessageIcon(boolean state)
设置会话界面未读新消息是否展示 注:未读新消息大于1条即展示
目前仅支持单群聊
|
void |
enableUnreadMessageIcon(boolean state)
设置会话界面历史消息是否展示 注:历史消息大于10条即展示
目前仅支持单群聊
|
void |
getBlacklist(RongIMClient.GetBlacklistCallback callback)
获取当前用户的黑名单列表。
|
void |
getBlacklistStatus(java.lang.String userId,
<any> callback)
获取某用户是否在黑名单中。
|
void |
getConversation(Conversation.ConversationType type,
java.lang.String targetId,
<any> callback)
根据不同会话类型的目标Id,回调方式获取某一会话信息。
|
void |
getConversationList(<any> callback)
获取会话列表。
|
void |
getConversationList(<any> callback,
Conversation.ConversationType... types)
根据会话类型,回调方式获取会话列表。
|
void |
getConversationNotificationStatus(Conversation.ConversationType conversationType,
java.lang.String targetId,
<any> callback)
获取会话消息提醒状态。
|
RongIMClient.ConnectionStatusListener.ConnectionStatus |
getCurrentConnectionStatus()
获取连接状态。
|
java.lang.String |
getCurrentUserId()
获取当前连接用户的信息。
|
long |
getDeltaTime()
获取本地时间与服务器时间的差值。
消息发送成功后,sdk 会与服务器同步时间,消息所在数据库中存储的时间就是服务器时间。
|
void |
getHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
int oldestMessageId,
int count,
<any> callback)
根据会话类型的目标 Id,回调方式获取N条历史消息记录。
|
void |
getHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
java.lang.String objectName,
int oldestMessageId,
int count,
<any> callback)
根据会话类型的目标 Id,回调方式获取某消息类型标识的N条历史消息记录。
|
static RongIM |
getInstance() |
void |
getLatestMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
int count,
<any> callback)
根据会话类型的目标 Id,回调方式获取最新的 N 条消息记录。
|
void |
getNotificationQuietHours(RongIMClient.GetNotificationQuietHoursCallback callback)
获取会话通知免打扰时间。
|
void |
getPublicServiceList(<any> callback)
获取己关注公共账号列表。
|
void |
getPublicServiceProfile(Conversation.PublicServiceType publicServiceType,
java.lang.String publicServiceId,
<any> callback)
获取公众服务信息。
|
void |
getRemoteHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
long dataTime,
int count,
<any> callback)
根据会话类型和目标 Id,获取 N 条远端历史消息记录。
|
void |
getRemoteHistoryMessages(Conversation.ConversationType conversationType,
java.lang.String targetId,
RemoteHistoryMsgOption remoteHistoryMsgOption,
<any> callback)
根据会话类型和目标 Id,拉取某时间戳之前或之后的 N 条远端历史消息记录。
|
int |
getSamplingRate()
语音消息采样率
|
void |
getTextMessageDraft(Conversation.ConversationType conversationType,
java.lang.String targetId,
<any> callback)
根据会话类型,获取某一会话的文字消息草稿。
|
void |
getUnreadCount(<any> callback,
Conversation.ConversationType... conversationTypes)
回调方式获取某会话类型的未读消息数。
|
void |
getUnreadCount(Conversation.ConversationType[] conversationTypes,
<any> callback)
根据会话类型数组,回调方式获取某会话类型的未读消息数。
|
void |
getUnreadCount(Conversation.ConversationType[] conversationTypes,
boolean containBlocked,
<any> callback)
回调方式获取某会话类型的未读消息数。可选择包含或者不包含消息免打扰的未读消息数。
|
void |
getUnreadCount(Conversation.ConversationType conversationType,
java.lang.String targetId,
<any> callback)
根据会话类型的目标 Id,回调方式获取来自某用户(某会话)的未读消息数。
|
static java.lang.String |
getVersion() |
IMCenter.VoiceMessageType |
getVoiceMessageType()
语音消息类型
|
static void |
init(android.app.Application application,
java.lang.String appKey)
初始化 SDK,在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。
调用此接口传入 AppKey 与在 AndroidManifest.xml 里写入 RONG_CLOUD_APP_KEY 是同样效果,二选一即可。
|
static void |
init(android.app.Application application,
java.lang.String appKey,
boolean enablePush)
初始化 SDK,在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。
调用此接口传入 AppKey 与在 AndroidManifest.xml 里写入 RONG_CLOUD_APP_KEY 是同样效果,二选一即可。
|
void |
insertIncomingMessage(Conversation.ConversationType type,
java.lang.String targetId,
java.lang.String senderUserId,
Message.ReceivedStatus receivedStatus,
MessageContent content,
<any> callback)
向本地会话中插入一条消息,方向为接收。这条消息只是插入本地会话,不会实际发送给服务器和对方。
插入消息需为入库消息,即
MessageTag#ISPERSISTED ,否者会回调 RongIMClient.ErrorCode#PARAMETER_ERROR |
void |
insertIncomingMessage(Conversation.ConversationType type,
java.lang.String targetId,
java.lang.String senderUserId,
Message.ReceivedStatus receivedStatus,
MessageContent content,
long sentTime,
<any> callback)
向本地会话中插入一条消息,方向为接收。这条消息只是插入本地会话,不会实际发送给服务器和对方。
插入消息需为入库消息,即
MessageTag#ISPERSISTED ,否者会回调 RongIMClient.ErrorCode#PARAMETER_ERROR |
void |
insertOutgoingMessage(Conversation.ConversationType type,
java.lang.String targetId,
Message.SentStatus sentStatus,
MessageContent content,
<any> callback)
向本地会话中插入一条消息,方向为发送。这条消息只是插入本地会话,不会实际发送给服务器和对方。
插入消息需为入库消息,即
MessageTag#ISPERSISTED ,否者会回调 RongIMClient.ErrorCode#PARAMETER_ERROR |
void |
insertOutgoingMessage(Conversation.ConversationType type,
java.lang.String targetId,
Message.SentStatus sentStatus,
MessageContent content,
long sentTime,
<any> callback)
向本地会话中插入一条消息,方向为发送。这条消息只是插入本地会话,不会实际发送给服务器和对方。
插入消息需为入库消息,即
MessageTag#ISPERSISTED ,否者会回调 RongIMClient.ErrorCode#PARAMETER_ERROR |
void |
joinChatRoom(java.lang.String chatroomId,
int defMessageCount,
RongIMClient.OperationCallback callback)
加入聊天室。
|
void |
joinExistChatRoom(java.lang.String chatroomId,
int defMessageCount,
RongIMClient.OperationCallback callback)
加入已存在的聊天室。
|
void |
logout()
注销当前登录,执行该方法后不会再收到 push 消息。
|
void |
pauseDownloadMediaMessage(Message message,
RongIMClient.OperationCallback callback)
暂停下载多媒体文件
|
void |
quitChatRoom(java.lang.String chatroomId,
RongIMClient.OperationCallback callback)
退出聊天室。
|
void |
recallMessage(Message message,
java.lang.String pushContent)
撤回消息
|
void |
refreshGroupInfoCache(Group group)
刷新群组缓存数据。
|
void |
refreshGroupUserInfoCache(GroupUserInfo groupUserInfo)
刷新、更改群组用户缓存数据。
|
void |
refreshPublicServiceProfile(PublicServiceProfile publicServiceProfile)
刷新公众服务账号缓存数据。
|
void |
refreshUserInfoCache(UserInfo userInfo)
刷新用户缓存数据。
|
void |
registerConversationTemplate(BaseConversationProvider provider)
注册会话列表消息模板提供者。
|
static void |
registerMessageTemplate(IMessageProvider provider)
注册消息模板。
|
void |
removeNotificationQuietHours(RongIMClient.OperationCallback callback)
移除会话通知免打扰时间。
|
static void |
removeOnReceiveMessageListener(RongIMClient.OnReceiveMessageWrapperListener listener)
移除接收消息的监听器。
|
void |
removeUnReadMessageCountChangedObserver(UnReadMessageManager.IUnReadMessageObserver observer)
注销已注册的未读消息数变化监听器。
|
void |
sendDirectionalMediaMessage(Message message,
java.lang.String[] userIds,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMediaMessageCallback callback)
发送定向多媒体消息
|
void |
sendDirectionalMessage(Conversation.ConversationType type,
java.lang.String targetId,
MessageContent content,
java.lang.String[] userIds,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMessageCallback callback)
发送定向消息。向会话中特定的某些用户发送消息,会话中其他用户将不会收到此消息。
通过
IRongCallback.ISendMessageCallback 中的方法回调发送的消息状态及消息体。 |
void |
sendLocationMessage(Message message,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMessageCallback sendMessageCallback)
发送地理位置消息。并同时更新界面。
|
void |
sendMediaMessage(Message message,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMediaMessageCallback callback)
发送多媒体消息
|
void |
sendMediaMessage(Message message,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMediaMessageCallbackWithUploader callback)
发送多媒体消息,可以使用该方法将多媒体文件上传到自己的服务器。
使用该方法在上传多媒体文件时,会回调
IRongCallback.ISendMediaMessageCallbackWithUploader#onAttached(Message, IRongCallback.MediaMessageUploader)
此回调中会携带 IRongCallback.MediaMessageUploader 对象,使用者只需要调用此对象中的
IRongCallback.MediaMessageUploader#update(int) 更新进度
IRongCallback.MediaMessageUploader#success(Uri) 更新成功状态,并告知上传成功后的文件地址
IRongCallback.MediaMessageUploader#error() 更新失败状态 |
void |
sendMessage(Conversation.ConversationType type,
java.lang.String targetId,
MessageContent content,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMessageCallback callback)
根据会话类型,发送消息。
|
void |
sendMessage(Message message,
java.lang.String pushContent,
java.lang.String pushData,
IRongCallback.ISendMessageCallback callback)
发送消息。
通过
IRongCallback.ISendMessageCallback
中的方法回调发送的消息状态及消息体。 |
void |
sendMessage(Message message,
java.lang.String pushContent,
java.lang.String pushData,
SendMessageOption option,
IRongCallback.ISendMessageCallback callback)
发送消息。
通过
IRongCallback.ISendMessageCallback
中的方法回调发送的消息状态及消息体。 |
static void |
setConnectionStatusListener(RongIMClient.ConnectionStatusListener listener)
设置连接状态变化的监听器。
|
static void |
setConversationClickListener(ConversationClickListener listener)
设置会话界面操作的监听器。
|
static void |
setConversationListBehaviorListener(ConversationListBehaviorListener listener)
设置会话列表界面操作的监听器。
|
void |
setConversationNotificationStatus(Conversation.ConversationType conversationType,
java.lang.String targetId,
Conversation.ConversationNotificationStatus notificationStatus,
<any> callback)
设置会话消息提醒状态。
|
void |
setConversationToTop(Conversation.ConversationType type,
java.lang.String id,
boolean isTop,
boolean needCreate,
<any> callback)
设置某一会话为置顶或者取消置顶,回调方式获取设置是否成功。
|
void |
setCurrentUserInfo(UserInfo userInfo)
设置当前用户信息。
如果开发者没有实现用户信息提供者,而是使用消息携带用户信息,需要使用这个方法设置当前用户的信息,
然后在
init(Application, String, boolean) 之后调用RongUserInfoManager.getInstance() .setMessageAttachedUserInfo(boolean)},
这样可以在每条消息中携带当前用户的信息,IMKit会在接收到消息的时候取出用户信息并刷新到界面上。 |
static void |
setGroupInfoProvider(UserDataProvider.GroupInfoProvider groupInfoProvider,
boolean isCacheGroupInfo)
设置群组信息的提供者。
|
void |
setGroupMembersProvider(RongMentionManager.IGroupMembersProvider groupMembersProvider)
设置群组成员提供者。
'@' 功能和VoIP功能在选人界面,需要知道群组内成员信息,开发者需要设置该提供者。 开发者需要在回调中获取到群成员信息
并通过
RongMentionManager.IGroupMemberCallback 中的方法设置到 sdk 中
|
static void |
setGroupUserInfoProvider(UserDataProvider.GroupUserInfoProvider groupUserInfoProvider,
boolean isCacheGroupUserInfo)
设置GroupUserInfo提供者,供RongIM 调用获取GroupUserInfo
|
static void |
setLocationProvider(LocationManager.LocationProvider locationProvider)
设置位置信息的提供者。
|
void |
setMaxVoiceDuration(int sec)
设置语音消息的最大长度
|
void |
setMessageAttachedUserInfo(boolean state)
设置消息体内是否携带用户信息。
|
void |
setMessageInterceptor(MessageInterceptor interceptor)
设置消息拦截器。
|
void |
setMessageSentStatus(Message message,
<any> callback)
根据消息 Message 设置消息状态,回调方式获取设置是否成功。
|
void |
setNotificationQuietHours(java.lang.String startTime,
int spanMinutes,
RongIMClient.OperationCallback callback)
设置会话通知免打扰时间。
|
static void |
setPublicServiceBehaviorListener(PublicServiceManager.PublicServiceBehaviorListener listener)
设置公众号界面操作的监听器。
|
void |
setPublicServiceMenuClickListener(IPublicServiceMenuClickListener menuClickListener)
设置公众服务菜单点击监听。
建议使用方法:在进入对应公众服务会话时,设置监听。当退出会话时,重置监听为 null,这样可以防止内存泄露。
|
static void |
setPublicServiceProfileProvider(PublicServiceManager.PublicServiceProfileProvider publicServiceProfileProvider)
设置公众服务账号信息的提供者,供 RongIM 调用获公众服务账号名称,头像信息和公众服务号菜单。
|
void |
setReadReceiptConversationTypeList(Conversation.ConversationType... types)
设置发送消息回执的会话类型。目前只支持私聊,群组和讨论组。
默认支持私聊。
|
void |
setSamplingRate(AudioRecordManager.SamplingRate sampleRate)
设置语音消息采样率
|
static void |
setUserInfoProvider(UserDataProvider.UserInfoProvider userInfoProvider,
boolean isCacheUserInfo)
设置用户信息的提供者,供 RongIM 调用获取用户名称和头像信息。
设置后,当 sdk 界面展示用户信息时,会回调
UserDataProvider.UserInfoProvider#getUserInfo(String)
使用者只需要根据对应的 userId 提供对应的用户信息。
如果需要异步从服务器获取用户信息,使用者可以在此方法中发起异步请求,然后返回 null 信息。
在异步请求结果返回后,根据返回的结果调用 refreshUserInfoCache(UserInfo) 刷新用户信息。 |
void |
setVoiceMessageType(IMCenter.VoiceMessageType voiceMessageType)
设置语音消息类型
|
void |
startChatRoomChat(android.content.Context context,
java.lang.String chatRoomId,
boolean createIfNotExist)
启动聊天室会话。
|
void |
startConversation(android.content.Context context,
Conversation.ConversationType conversationType,
java.lang.String targetId,
android.os.Bundle bundle)
启动会话界面。
|
void |
startConversation(android.content.Context context,
Conversation.ConversationType conversationType,
java.lang.String targetId,
java.lang.String title)
启动会话界面。
|
void |
startConversation(android.content.Context context,
Conversation.ConversationType conversationType,
java.lang.String targetId,
java.lang.String title,
long fixedMsgSentTime)
启动会话界面,并跳转到指定的消息位置
|
void |
startCustomerServiceChat(android.content.Context context,
java.lang.String customerServiceId,
java.lang.String title,
CSCustomServiceInfo customServiceInfo)
启动客户服聊天界面。
|
void |
startGroupChat(android.content.Context context,
java.lang.String targetGroupId,
java.lang.String title)
启动群组聊天界面。
|
void |
startPrivateChat(android.content.Context context,
java.lang.String targetUserId,
java.lang.String title)
启动单聊界面。
|
void |
startSubConversationList(android.content.Context context,
Conversation.ConversationType conversationType)
启动聚合后的某类型的会话列表。
例如:如果设置了单聊会话为聚合,则通过该方法可以打开包含所有的单聊会话的列表。 |
public static RongIM getInstance()
public void addToBlacklist(java.lang.String userId, RongIMClient.OperationCallback callback)
当你把对方加入黑名单后,对方再发消息时,就会提示“已被加入黑名单,消息发送失败”。 但你依然可以发消息个对方。
userId
- 用户 Id。callback
- 加到黑名单回调。public void addUnReadMessageCountChangedObserver(UnReadMessageManager.IUnReadMessageObserver observer, Conversation.ConversationType... conversationTypes)
UnReadMessageManager.removeObserver(UnReadMessageManager.IUnReadMessageObserver)
否则会造成内存泄漏。observer
- 接收未读消息消息的监听器。conversationTypes
- 接收未读消息的会话类型。public void cancelDownloadMediaMessage(Message message, RongIMClient.OperationCallback callback)
message
- 包含多媒体文件的消息,即MessageContent
为 FileMessage, ImageMessage 等。callback
- 取消下载多媒体文件时的回调。public void cancelSendMediaMessage(Message message, RongIMClient.OperationCallback callback)
message
- 包含多媒体文件的消息,即MessageContent
为 FileMessage, ImageMessage 等。callback
- 取消发送多媒体文件时的回调。public void clearConversations(RongIMClient.ResultCallback callback, Conversation.ConversationType... conversationTypes)
callback
- 是否清空成功的回调。conversationTypes
- 会话类型。public void clearMessages(Conversation.ConversationType conversationType, java.lang.String targetId, <any> callback)
conversationType
- 会话类型。不支持传入 ConversationType.CHATROOM。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。callback
- 清空是否成功的回调。public void clearMessagesUnreadStatus(Conversation.ConversationType conversationType, java.lang.String targetId, <any> callback)
conversationType
- 会话类型。不支持传入 ConversationType.CHATROOM。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。callback
- 清除是否成功的回调。public void clearTextMessageDraft(Conversation.ConversationType conversationType, java.lang.String targetId, <any> callback)
conversationType
- 会话类型。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。callback
- 是否清除成功的回调。public static void init(android.app.Application application, java.lang.String appKey)
初始化 SDK,在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。 调用此接口传入 AppKey 与在 AndroidManifest.xml 里写入 RONG_CLOUD_APP_KEY 是同样效果,二选一即可。
application
- 应用appKey
- 融云注册应用的AppKey。public static void init(android.app.Application application, java.lang.String appKey, boolean enablePush)
初始化 SDK,在整个应用程序全局只需要调用一次, 建议在 Application 继承类中调用。 调用此接口传入 AppKey 与在 AndroidManifest.xml 里写入 RONG_CLOUD_APP_KEY 是同样效果,二选一即可。
application
- 应用appKey
- 融云注册应用的AppKey。enablePush
- 是否使用推送功能。false 代表不使用推送相关功能, SDK 里将不会携带推送相关文件。public void insertIncomingMessage(Conversation.ConversationType type, java.lang.String targetId, java.lang.String senderUserId, Message.ReceivedStatus receivedStatus, MessageContent content, long sentTime, <any> callback)
MessageTag#ISPERSISTED
,否者会回调 RongIMClient.ErrorCode#PARAMETER_ERROR
type
- 会话类型。targetId
- 目标会话Id。比如私人会话时,是对方的id; 群组会话时,是群id; 讨论组会话时,则为该讨论,组的id.senderUserId
- 发送方 IdreceivedStatus
- 接收状态 @see Message.ReceivedStatus
content
- 消息内容。如TextMessage
ImageMessage
等。callback
- 获得消息发送实体的回调。public void insertIncomingMessage(Conversation.ConversationType type, java.lang.String targetId, java.lang.String senderUserId, Message.ReceivedStatus receivedStatus, MessageContent content, <any> callback)
MessageTag#ISPERSISTED
,否者会回调 RongIMClient.ErrorCode#PARAMETER_ERROR
type
- 会话类型。targetId
- 目标会话Id。比如私人会话时,是对方的id; 群组会话时,是群id; 讨论组会话时,则为该讨论,组的id.senderUserId
- 发送方 IdreceivedStatus
- 接收状态 @see Message.ReceivedStatus
content
- 消息内容。如TextMessage
ImageMessage
等。callback
- 获得消息发送实体的回调。public void insertOutgoingMessage(Conversation.ConversationType type, java.lang.String targetId, Message.SentStatus sentStatus, MessageContent content, <any> callback)
MessageTag#ISPERSISTED
,否者会回调 RongIMClient.ErrorCode#PARAMETER_ERROR
type
- 会话类型。targetId
- 目标会话Id。比如私人会话时,是对方的id; 群组会话时,是群id; 讨论组会话时,则为该讨论,组的id.sentStatus
- 接收状态 @see Message.ReceivedStatus
content
- 消息内容。如TextMessage
ImageMessage
等。callback
- 获得消息发送实体的回调。public void insertOutgoingMessage(Conversation.ConversationType type, java.lang.String targetId, Message.SentStatus sentStatus, MessageContent content, long sentTime, <any> callback)
MessageTag#ISPERSISTED
,否者会回调 RongIMClient.ErrorCode#PARAMETER_ERROR
type
- 会话类型。targetId
- 目标会话Id。比如私人会话时,是对方的id; 群组会话时,是群id; 讨论组会话时,则为该讨论,组的id.sentStatus
- 发送状态 @see Message.SentStatus
content
- 消息内容。如TextMessage
ImageMessage
等。callback
- 获得消息发送实体的回调。public void joinChatRoom(java.lang.String chatroomId, int defMessageCount, RongIMClient.OperationCallback callback)
如果聊天室不存在,sdk 会创建聊天室并加入,如果已存在,则直接加入
加入聊天室时,可以选择拉取聊天室消息数目。
chatroomId
- 聊天室 Id。defMessageCount
- 进入聊天室拉取消息数目,-1 时不拉取任何消息,0 时拉取 10 条消息,最多只能拉取 50 条。(加入聊天室时会传本地最后一条消息的时间戳,拉取的是这个时间戳之后的消息。比如:这个时间戳之后有3条消息,defMessageCount传10,也只能拉到3条消息。)callback
- 状态回调。public void joinExistChatRoom(java.lang.String chatroomId, int defMessageCount, RongIMClient.OperationCallback callback)
如果聊天室不存在,则加入失败
加入聊天室时,可以选择拉取聊天室消息数目。
chatroomId
- 聊天室 Id。defMessageCount
- 进入聊天室拉取消息数目,-1 时不拉取任何消息,0 时拉取 10 条消息,最多只能拉取 40 条。callback
- 状态回调。public void logout()
public void pauseDownloadMediaMessage(Message message, RongIMClient.OperationCallback callback)
message
- 包含多媒体文件的消息,即MessageContent
为 FileMessage, ImageMessage 等。callback
- 暂停下载多媒体文件时的回调public void quitChatRoom(java.lang.String chatroomId, RongIMClient.OperationCallback callback)
chatroomId
- 聊天室 Id。callback
- 状态回调。public void recallMessage(Message message, java.lang.String pushContent)
message
- 将被撤回的消息pushContent
- 被撤回时,通知栏显示的信息public void refreshGroupUserInfoCache(GroupUserInfo groupUserInfo)
groupUserInfo
- 需要更新的群组用户缓存数据。public void refreshPublicServiceProfile(PublicServiceProfile publicServiceProfile)
publicServiceProfile
- 需要更新的公众服务账号缓存数据。public static void connect(java.lang.String token, RongIMClient.ConnectCallback connectCallback)
token
- 从服务端获取的 用户身份令牌(
Token)。connectCallback
- 连接服务器的回调扩展类,新增打开数据库的回调,用户可以在此回调中执行拉取会话列表操作。public static void connect(java.lang.String token, int timeLimit, RongIMClient.ConnectCallback connectCallback)
token
- 从服务端获取的 用户身份令牌(
Token)。timeLimit
- 连接超时时间,单位:秒。timeLimit <= 0,则 IM 将一直连接,直到连接成功或者无法连接(如 token 非法)
timeLimit > 0 ,则 IM 将最多连接 timeLimit 秒:
如果在 timeLimit 秒内连接成功,后面再发生了网络变化或前后台切换,SDK 会自动重连;
如果在 timeLimit 秒无法连接成功则不再进行重连,通过 onError 告知连接超时,您需要再自行调用 connect 接口connectCallback
- 连接服务器的回调扩展类,新增打开数据库的回调,用户可以在此回调中执行拉取会话列表操作。public void deleteMessages(Conversation.ConversationType conversationType, java.lang.String targetId, <any> callback)
清除指定会话的消息
。此接口会删除指定会话中数据库的所有消息,同时,会清理数据库空间。 如果数据库特别大,超过几百 M,调用该接口会有少许耗时。
conversationType
- 要删除的消息 Id 数组。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。callback
- 是否删除成功的回调。public void deleteMessages(Conversation.ConversationType conversationType, java.lang.String targetId, int[] messageIds, <any> callback)
messageIds
- 要删除的消息 Id 数组。callback
- 是否删除成功的回调。public void deleteRemoteMessages(Conversation.ConversationType conversationType, java.lang.String targetId, Message[] messages, RongIMClient.OperationCallback callback)
请注意,此方法会删除远端消息,请慎重使用
conversationType
- 会话类型。暂时不支持聊天室targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、客服 Id。messages
- 要删除的消息数组, 数组大小不能超过100条。callback
- 是否删除成功的回调。public void disconnect()
public void downloadMedia(Conversation.ConversationType conversationType, java.lang.String targetId, RongIMClient.MediaType mediaType, java.lang.String imageUrl, RongIMClient.DownloadMediaCallback callback)
conversationType
- 会话类型。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。mediaType
- 文件类型。imageUrl
- 文件的 URL 地址。callback
- 下载文件的回调。public void downloadMediaFile(java.lang.String uid, java.lang.String fileUrl, java.lang.String fileName, java.lang.String path, IRongCallback.IDownloadMediaFileCallback callback)
uid
- 文件唯一标识fileUrl
- 文件下载地址fileName
- 文件名path
- 文件下载保存目录,如果是 targetVersion 29 为目标,由于访问权限原因,建议使用 context.getExternalFilesDir() 方法保存到私有目录callback
- 回调public void downloadMediaMessage(Message message, IRongCallback.IDownloadMediaMessageCallback callback)
downloadMedia(Conversation.ConversationType, String, RongIMClient.MediaType, String, RongIMClient.DownloadMediaCallback)
的区别是,该方法支持取消操作。
用来获取媒体原文件时调用。如果本地缓存中包含此文件,则从本地缓存中直接获取,否则将从服务器端下载。message
- 文件消息。callback
- 下载文件的回调。public void enableNewComingMessageIcon(boolean state)
state
- true 展示,false 不展示。public void enableUnreadMessageIcon(boolean state)
state
- true 展示,false 不展示。public static void registerMessageTemplate(IMessageProvider provider)
provider
- 模板类型。public static void addOnReceiveMessageListener(RongIMClient.OnReceiveMessageWrapperListener listener)
listener
- 接收消息的监听器。public static void removeOnReceiveMessageListener(RongIMClient.OnReceiveMessageWrapperListener listener)
listener
- 接收消息的监听器。public static void setConnectionStatusListener(RongIMClient.ConnectionStatusListener listener)
listener
- 连接状态变化的监听器。public static void setConversationClickListener(ConversationClickListener listener)
listener
- 会话界面操作的监听器。public static void setConversationListBehaviorListener(ConversationListBehaviorListener listener)
listener
- 会话列表界面操作的监听器。public void setConversationNotificationStatus(Conversation.ConversationType conversationType, java.lang.String targetId, Conversation.ConversationNotificationStatus notificationStatus, <any> callback)
conversationType
- 会话类型。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。notificationStatus
- 是否屏蔽。callback
- 设置状态的回调。public void setConversationToTop(Conversation.ConversationType type, java.lang.String id, boolean isTop, boolean needCreate, <any> callback)
type
- 会话类型。id
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。isTop
- 是否置顶。needCreate
- 会话不存在时,是否创建会话。callback
- 设置置顶或取消置顶是否成功的回调。public void startPrivateChat(android.content.Context context, java.lang.String targetUserId, java.lang.String title)
context
- 应用上下文。targetUserId
- 要与之聊天的用户 Id。title
- 聊天的标题。开发者需要在聊天界面获取该值, 再手动设置为聊天界面的标题。public void startGroupChat(android.content.Context context, java.lang.String targetGroupId, java.lang.String title)
context
- 应用上下文。targetGroupId
- 要聊天的群组 Id。title
- 聊天的标题。开发者需要在聊天界面通过intent.getData().getQueryParameter("title")获取该值, 再手动设置为聊天界面的标题。public void startConversation(android.content.Context context, Conversation.ConversationType conversationType, java.lang.String targetId, java.lang.String title)
启动会话界面。
context
- 应用上下文。conversationType
- 会话类型。targetId
- 根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。title
- 聊天的标题。开发者需要在聊天界面通过intent.getData().getQueryParameter("title")获取该值, 再手动设置为聊天界面的标题。public void startConversation(android.content.Context context, Conversation.ConversationType conversationType, java.lang.String targetId, java.lang.String title, long fixedMsgSentTime)
启动会话界面,并跳转到指定的消息位置
使用时,可以传入多种会话类型 Conversation.ConversationType
对应不同的会话类型,开启不同的会话界面。
如果传入的是 Conversation.ConversationType#CHATROOM
,sdk 会默认调用
RongIMClient#joinChatRoom(String, int, RongIMClient.OperationCallback)
加入聊天室。
context
- 应用上下文。conversationType
- 会话类型。targetId
- 根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。title
- 聊天的标题。开发者需要在聊天界面通过intent.getData().getQueryParameter("title")获取该值, 再手动设置为聊天界面的标题。fixedMsgSentTime
- 需要定位的消息发送时间public void getConversation(Conversation.ConversationType type, java.lang.String targetId, <any> callback)
type
- 会话类型。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。callback
- 获取会话信息的回调。public void getConversationList(<any> callback)
callback
- 会话列表数据回调。
Conversation。public void getConversationList(<any> callback, Conversation.ConversationType... types)
callback
- 获取会话列表的回调。types
- 会话类型。public void getConversationNotificationStatus(Conversation.ConversationType conversationType, java.lang.String targetId, <any> callback)
conversationType
- 会话类型。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。callback
- 获取状态的回调。public void getBlacklist(RongIMClient.GetBlacklistCallback callback)
callback
- 获取黑名单回调。public void getBlacklistStatus(java.lang.String userId, <any> callback)
userId
- 用户 Id。callback
- 获取用户是否在黑名单回调。public RongIMClient.ConnectionStatusListener.ConnectionStatus getCurrentConnectionStatus()
public long getDeltaTime()
public void getHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, int oldestMessageId, int count, <any> callback)
conversationType
- 会话类型。不支持传入 ConversationType.CHATROOM。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。oldestMessageId
- 最后一条消息的 Id,获取此消息之前的 count 条消息,没有消息第一次调用应设置为:-1。count
- 要获取的消息数量。callback
- 获取历史消息记录的回调,按照时间顺序从新到旧排列。public void getHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, java.lang.String objectName, int oldestMessageId, int count, <any> callback)
conversationType
- 会话类型。不支持传入 ConversationType.CHATROOM。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 。objectName
- 消息类型标识。oldestMessageId
- 最后一条消息的 Id,获取此消息之前的 count 条消息,没有消息第一次调用应设置为:-1。count
- 要获取的消息数量。callback
- 获取历史消息记录的回调,按照时间顺序从新到旧排列。public void getLatestMessages(Conversation.ConversationType conversationType, java.lang.String targetId, int count, <any> callback)
conversationType
- 会话类型。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。count
- 要获取的消息数量。callback
- 获取最新消息记录的回调,按照时间顺序从新到旧排列。public void getPublicServiceList(<any> callback)
callback
- 获取己关注公共账号列表回调。public void getPublicServiceProfile(Conversation.PublicServiceType publicServiceType, java.lang.String publicServiceId, <any> callback)
publicServiceType
- 会话类型,APP_PUBLIC_SERVICE 或者 PUBLIC_SERVICE。publicServiceId
- 公众服务 Id。callback
- 获取公众号信息回调。public void getRemoteHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, long dataTime, int count, <any> callback)
该方法只支持拉取指定时间之前的远端历史消息
conversationType
- 会话类型。不支持传入 ConversationType.CHATROOM。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。dataTime
- 从该时间点开始获取消息。即:消息中的 sendTime;第一次可传 0,获取最新 count 条。count
- 要获取的消息数量,最多 20 条。callback
- 获取历史消息记录的回调,按照时间顺序从新到旧排列。public void getRemoteHistoryMessages(Conversation.ConversationType conversationType, java.lang.String targetId, RemoteHistoryMsgOption remoteHistoryMsgOption, <any> callback)
该方法支持拉取指定时间之前或之后的远端历史消息
conversationType
- 会话类型。不支持传入 ConversationType.CHATROOM。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。remoteHistoryMsgOption
- RemoteHistoryMsgOption
callback
- 获取历史消息记录的回调,按照时间顺序从新到旧排列。public void getTextMessageDraft(Conversation.ConversationType conversationType, java.lang.String targetId, <any> callback)
conversationType
- 会话类型。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。callback
- 获取草稿文字内容的回调。public void getUnreadCount(Conversation.ConversationType conversationType, java.lang.String targetId, <any> callback)
conversationType
- 会话类型。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。callback
- 未读消息数的回调public void getUnreadCount(<any> callback, Conversation.ConversationType... conversationTypes)
callback
- 未读消息数的回调。conversationTypes
- 会话类型。public void getUnreadCount(Conversation.ConversationType[] conversationTypes, boolean containBlocked, <any> callback)
conversationTypes
- 会话类型。containBlocked
- 是否包含消息免打扰的未读消息数,true 包含, false 不包含callback
- 未读消息数的回调。public void getUnreadCount(Conversation.ConversationType[] conversationTypes, <any> callback)
conversationTypes
- 会话类型。callback
- 未读消息数的回调。public static void setUserInfoProvider(UserDataProvider.UserInfoProvider userInfoProvider, boolean isCacheUserInfo)
设置用户信息的提供者,供 RongIM 调用获取用户名称和头像信息。
设置后,当 sdk 界面展示用户信息时,会回调 UserDataProvider.UserInfoProvider#getUserInfo(String)
使用者只需要根据对应的 userId 提供对应的用户信息。
如果需要异步从服务器获取用户信息,使用者可以在此方法中发起异步请求,然后返回 null 信息。
在异步请求结果返回后,根据返回的结果调用 refreshUserInfoCache(UserInfo)
刷新用户信息。
userInfoProvider
- 用户信息提供者 UserDataProvider.UserInfoProvider
。isCacheUserInfo
- 设置是否由 IMKit 来缓存用户信息。public void refreshUserInfoCache(UserInfo userInfo)
userInfo
- 需要更新的用户缓存数据。public void refreshGroupInfoCache(Group group)
group
- 需要更新的群组缓存数据。public void registerConversationTemplate(BaseConversationProvider provider)
provider
- 会话列表模板提供者。public void setNotificationQuietHours(java.lang.String startTime, int spanMinutes, RongIMClient.OperationCallback callback)
startTime
- 起始时间 格式 HH:MM:SS。spanMinutes
- 间隔分钟数大于 0 小于 1440。callback
- 设置会话通知免打扰时间回调。public void getNotificationQuietHours(RongIMClient.GetNotificationQuietHoursCallback callback)
callback
- 获取会话通知免打扰时间回调。public void removeNotificationQuietHours(RongIMClient.OperationCallback callback)
callback
- 移除会话通知免打扰时间回调。public void removeUnReadMessageCountChangedObserver(UnReadMessageManager.IUnReadMessageObserver observer)
observer
- 接收未读消息消息的监听器。public void sendDirectionalMediaMessage(Message message, java.lang.String[] userIds, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMediaMessageCallback callback)
发送定向多媒体消息
向会话中特定的某些用户发送消息,会话中其他用户将不会收到此消息。发送前构造 Message
消息实体,消息实体中的 content 必须为多媒体消息,如 ImageMessage
FileMessage
或者其他继承自 MediaMessageContent
的消息
message
- 发送消息的实体。userIds
- 定向接收者 id 数组pushContent
- 当下发 push 消息时,在通知栏里会显示这个字段。
发送文件消息时,此字段必须填写,否则会收不到 push 推送。pushData
- push 附加信息。如果设置该字段,用户在收到 push 消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调 RongIMClient.SendMediaMessageCallback
。public void sendDirectionalMessage(Conversation.ConversationType type, java.lang.String targetId, MessageContent content, java.lang.String[] userIds, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMessageCallback callback)
发送定向消息。向会话中特定的某些用户发送消息,会话中其他用户将不会收到此消息。
通过 IRongCallback.ISendMessageCallback
中的方法回调发送的消息状态及消息体。
ImageMessage
FileMessage
,或者继承自MediaMessageContent
的消息须调用
sendDirectionalMediaMessage(Message, String[], String, String, IRongCallback.ISendMediaMessageCallback)
。type
- 会话类型。targetId
- 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。content
- 消息内容,例如 TextMessage
pushContent
- 当下发 push 消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到 push 消息。
如果发送 sdk 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- push 附加信息。如果设置该字段,用户在收到 push 消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。userIds
- 会话中将会接收到此消息的用户列表。callback
- 发送消息的回调,参考 IRongCallback.ISendMessageCallback
。public void sendLocationMessage(Message message, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMessageCallback sendMessageCallback)
发送地理位置消息。并同时更新界面。
发送前构造 Message
消息实体,消息实体中的 content 必须为 LocationMessage
, 否则返回失败。
其中的缩略图地址 scheme 只支持 file:// 和 http:// 其他暂不支持。
message
- 消息实体。pushContent
- 当下发 push 消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到 push 消息。
如果发送 sdk 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- push 附加信息。如果设置该字段,用户在收到 push 消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。sendMessageCallback
- 发送消息的回调,参考 IRongCallback.ISendMessageCallback
。public void sendMediaMessage(Message message, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMediaMessageCallback callback)
发送多媒体消息
发送前构造 Message
消息实体,消息实体中的 content 必须为 FileMessage
, 否则返回失败。
message
- 发送消息的实体。pushContent
- 当下发 push 消息时,在通知栏里会显示这个字段。
发送文件消息时,此字段必须填写,否则会收不到 push 推送。pushData
- push 附加信息。如果设置该字段,用户在收到 push 消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调 RongIMClient.SendMediaMessageCallback
。public void sendMediaMessage(Message message, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMediaMessageCallbackWithUploader callback)
发送多媒体消息,可以使用该方法将多媒体文件上传到自己的服务器。
使用该方法在上传多媒体文件时,会回调 IRongCallback.ISendMediaMessageCallbackWithUploader#onAttached(Message, IRongCallback.MediaMessageUploader)
此回调中会携带 IRongCallback.MediaMessageUploader
对象,使用者只需要调用此对象中的
IRongCallback.MediaMessageUploader#update(int)
更新进度
IRongCallback.MediaMessageUploader#success(Uri)
更新成功状态,并告知上传成功后的文件地址
IRongCallback.MediaMessageUploader#error()
更新失败状态
message
- 发送消息的实体。pushContent
- 当下发 push 消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到 push 消息。
如果发送 sdk 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg, RC:FileMsg,则不需要填写,默认已经指定。pushData
- push 附加信息。如果设置该字段,用户在收到 push 消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调,回调中携带 IRongCallback.MediaMessageUploader
对象,用户调用该对象中的方法更新状态。public void sendMessage(Conversation.ConversationType type, java.lang.String targetId, MessageContent content, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMessageCallback callback)
通过 IRongCallback.ISendMessageCallback
中的方法回调发送的消息状态及消息体。
注意:1 秒钟发送消息不能超过 5 条。
type
- 会话类型。targetId
- 会话 id。根据不同的 conversationType,可能是用户 id、讨论组 id、群组 id 或聊天室 id。content
- 消息内容,例如 TextMessage
, ImageMessage
。pushContent
- 当下发远程推送消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到远程推送消息。
如果发送 SDK 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- 远程推送附加信息。如果设置该字段,用户在收到 push 消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调。参考 IRongCallback.ISendMessageCallback
。public void sendMessage(Message message, java.lang.String pushContent, java.lang.String pushData, IRongCallback.ISendMessageCallback callback)
发送消息。
通过 IRongCallback.ISendMessageCallback
中的方法回调发送的消息状态及消息体。
message
- 将要发送的消息体。pushContent
- 当下发 push 消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到 push 消息。
如果发送 sdk 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- push 附加信息。如果设置该字段,用户在收到 push 消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。callback
- 发送消息的回调,参考 IRongCallback.ISendMessageCallback
。public void sendMessage(Message message, java.lang.String pushContent, java.lang.String pushData, SendMessageOption option, IRongCallback.ISendMessageCallback callback)
发送消息。
通过 IRongCallback.ISendMessageCallback
中的方法回调发送的消息状态及消息体。
message
- 将要发送的消息体。pushContent
- 当下发 push 消息时,在通知栏里会显示这个字段。
如果发送的是自定义消息,该字段必须填写,否则无法收到 push 消息。
如果发送 sdk 中默认的消息类型,例如 RC:TxtMsg, RC:VcMsg, RC:ImgMsg,则不需要填写,默认已经指定。pushData
- push 附加信息。如果设置该字段,用户在收到 push 消息时,能通过 io.rong.push.notification.PushNotificationMessage#getPushData()
方法获取。option
- 发送消息附加选项,目前仅支持设置 isVoIPPush,如果对端设备是 iOS,设置 isVoIPPush 为 True,会走 VoIP 通道推送 Push.callback
- 发送消息的回调,参考 IRongCallback.ISendMessageCallback
。public static void setGroupInfoProvider(UserDataProvider.GroupInfoProvider groupInfoProvider, boolean isCacheGroupInfo)
设置群组信息的提供者。
设置后,当 sdk 界面展示群组信息时,会回调 UserDataProvider.GroupInfoProvider#getGroupInfo(String)
使用者只需要根据对应的 groupId 提供对应的群组信息。
如果需要异步从服务器获取群组信息,使用者可以在此方法中发起异步请求,然后返回 null 信息。
在异步请求结果返回后,根据返回的结果调用 refreshGroupInfoCache(Group)
刷新信息。
groupInfoProvider
- 群组信息提供者。isCacheGroupInfo
- 设置是否由 IMKit 来缓存用户信息。public static void setGroupUserInfoProvider(UserDataProvider.GroupUserInfoProvider groupUserInfoProvider, boolean isCacheGroupUserInfo)
设置GroupUserInfo提供者,供RongIM 调用获取GroupUserInfo
可以使用此方法,修改群组中用户昵称
设置后,当 sdk 界面展示用户信息时,会回调 UserDataProvider.GroupUserInfoProvider#getGroupUserInfo(String, String)
使用者只需要根据对应的 groupId, userId 提供对应的用户信息 GroupUserInfo
。
如果需要异步从服务器获取用户信息,使用者可以在此方法中发起异步请求,然后返回 null 信息。
在异步请求结果返回后,根据返回的结果调用 refreshGroupUserInfoCache(GroupUserInfo)
刷新信息。
groupUserInfoProvider
- 群组用户信息提供者。isCacheGroupUserInfo
- 设置是否由 IMKit 来缓存 GroupUserInfo。public static void setLocationProvider(LocationManager.LocationProvider locationProvider)
locationProvider
- 位置信息提供者。public void setGroupMembersProvider(RongMentionManager.IGroupMembersProvider groupMembersProvider)
RongMentionManager.IGroupMemberCallback
中的方法设置到 sdk 中
groupMembersProvider
- 群组成员提供者。public java.lang.String getCurrentUserId()
public void setMaxVoiceDuration(int sec)
sec
- 默认值是60spublic IMCenter.VoiceMessageType getVoiceMessageType()
public void setVoiceMessageType(IMCenter.VoiceMessageType voiceMessageType)
voiceMessageType
- 消息类型IMCenter.VoiceMessageType
public void setSamplingRate(AudioRecordManager.SamplingRate sampleRate)
sampleRate
- 消息采样率AudioRecordManager.SamplingRate
public int getSamplingRate()
public void setMessageInterceptor(MessageInterceptor interceptor)
interceptor
- 消息发送或接受的拦截器。public void setMessageSentStatus(Message message, <any> callback)
message
- 消息实体。要设置的发送状态包含在 message 中callback
- 是否设置成功的回调。public static void setPublicServiceBehaviorListener(PublicServiceManager.PublicServiceBehaviorListener listener)
listener
- 会话公众号界面操作的监听器。public void setPublicServiceMenuClickListener(IPublicServiceMenuClickListener menuClickListener)
menuClickListener
- 监听。public static void setPublicServiceProfileProvider(PublicServiceManager.PublicServiceProfileProvider publicServiceProfileProvider)
目前 sdk 默认的公众号服务不需要开发者设置,这个接口提供了另外一种从 app 层设置公众服务账号信息的方式
设置后,当 sdk 界面展示用户信息时,会回调 PublicServiceManager.PublicServiceProfileProvider#getPublicServiceProfile(Conversation.PublicServiceType, String)
使用者只需要根据对应的publicServiceType, publicServiceId 提供对应的公众服务账号信息。
如果需要异步从服务器获取公众服务账号信息,使用者可以在此方法中发起异步请求,然后返回 null 信息。
在异步请求结果返回后,根据返回的结果调用 refreshPublicServiceProfile(PublicServiceProfile)
刷新公众号信息。
publicServiceProfileProvider
- 公众服务账号信息的提供者 PublicServiceManager.PublicServiceProfileProvider
。public void setReadReceiptConversationTypeList(Conversation.ConversationType... types)
types
- 包含在types里的会话类型中将会发送消息回执。public void setCurrentUserInfo(UserInfo userInfo)
init(Application, String, boolean)
之后调用RongUserInfoManager.getInstance()
.setMessageAttachedUserInfo(boolean)},
这样可以在每条消息中携带当前用户的信息,IMKit会在接收到消息的时候取出用户信息并刷新到界面上。userInfo
- 当前用户信息。public void setMessageAttachedUserInfo(boolean state)
state
- 是否携带用户信息,true 携带,false 不携带。public void startChatRoomChat(android.content.Context context, java.lang.String chatRoomId, boolean createIfNotExist)
启动聊天室会话。
设置参数 createIfNotExist 为 true,对应到 kit 中调用的接口是
RongIMClient#joinChatRoom(String, int, RongIMClient.OperationCallback)
.
如果聊天室不存在,则自动创建并加入,如果回调失败,则弹出 warning。
设置参数 createIfNotExist 为 false,对应到 kit 中调用的接口是
RongIMClient#joinExistChatRoom(String, int, RongIMClient.OperationCallback)
.
如果聊天室不存在,则返回错误 RongIMClient.ErrorCode#RC_CHATROOM_NOT_EXIST
.
context
- 应用上下文。chatRoomId
- 聊天室 id。createIfNotExist
- 如果聊天室不存在,是否创建。public void startConversation(android.content.Context context, Conversation.ConversationType conversationType, java.lang.String targetId, android.os.Bundle bundle)
启动会话界面。
使用时,可以传入多种会话类型 Conversation.ConversationType
对应不同的会话类型,开启不同的会话界面。
如果传入的是 Conversation.ConversationType#CHATROOM
,sdk 会默认调用
RongIMClient#joinChatRoom(String, int, RongIMClient.OperationCallback)
加入聊天室。
如果你的逻辑是,只允许加入已存在的聊天室,请使用接口 startChatRoomChat(Context, String, boolean)
并且第三个参数为 false
context
- 应用上下文。conversationType
- 会话类型。targetId
- 根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。bundle
- 参数传递 bundlepublic void startCustomerServiceChat(android.content.Context context, java.lang.String customerServiceId, java.lang.String title, CSCustomServiceInfo customServiceInfo)
context
- 应用上下文。customerServiceId
- 要与之聊天的客服 Id。title
- 聊天的标题。开发者需要在聊天界面通过intent.getData().getQueryParameter("title")获取该值, 再手动设置为聊天界面的标题。customServiceInfo
- 当前使用客服者的用户信息。CSCustomServiceInfo
public void startSubConversationList(android.content.Context context, Conversation.ConversationType conversationType)
context
- 应用上下文。conversationType
- 会话类型。public static java.lang.String getVersion()