android 会话如何管理,Android IMLib SDK 开发指南-基础会话管理-Go语言中文社区

继续上次写的内容,上回写了关于 Android lmlib sdk开发指南的基础消息管理,今天继续写下面的 关于基础会话管理的干货。

基础会话管理

获取会话

获取指定的某个会话

/** * 根据不同会话类型的目标 Id,回调方式获取某一会话信息。 * *@paramconversationType 会话类型。 *@paramtargetId        目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。 *@paramcallback        获取会话信息的回调。 */publicvoidgetConversation(finalConversation.ConversationType conversationType,finalString targetId,finalResultCallback callback)

获取用户的所有本地会话列表

/** *

获取当前用户本地会话列表的默认方法,该方法返回的是以下类型的会话列表:私聊,群组,讨论组,系统会话。如果 * 您需要获取其它类型的会话列表,可以使用{@link #getConversationList(ResultCallback, Conversation.ConversationType...)} 方法。 * 注意:当更换设备或者清除缓存后,拉取到的是暂存在融云服务器中该账号当天收发过消息的会话列表。 * *@paramcallback 获取会话列表的回调。 */publicvoidgetConversationList(finalResultCallback> callback)

获取某几种会话类型的会话列表

/** *

根据会话类型,获取当前用户的本地会话列表。即显示所有本地数据库中收发过消息,并且未被删除的会话。 *

注意:当更换设备或者清除缓存后,能拉取到暂存在融云服务器中该账号当天收发过消息的会话。 * *@paramcallback          获取会话列表的回调。 *@paramconversationTypes 选择要获取的会话类型。 */publicvoidgetConversationList(finalResultCallback> callback,finalConversation.ConversationType... conversationTypes)

分页拉取本地会话列表

/** *

分页获取会话列表 *

注意:当更换设备或者清除缓存后,能拉取到暂存在融云服务器中该账号当天收发过消息的会话。 * * *@paramcallback          获取会话列表的回调 *@paramtimeStamp        时间戳,获取从此时间戳往前的会话,第一次传 0 *@paramcount            取回的会话个数。当实际取回的会话个数小于 count 值时,表明已取完数据 *@paramconversationTypes 选择要获取的会话类型 */publicvoidgetConversationListByPage(finalResultCallback> callback,finallongtimeStamp,finalintcount,finalConversation.ConversationType... conversationTypes)

删除会话

/** *

从会话列表中移除某一会话,但是不删除会话内的消息。 *

如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 * *@paramconversationType 会话类型。 *@paramtargetId        目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。 *@paramcallback        移除会话是否成功的回调。 */publicvoidremoveConversation(finalConversation.ConversationType conversationType,finalString targetId,finalResultCallback callback)

会话提醒

通过融云 SDK,您可以设置会话的提醒状态来实现免打扰功能。按照免打扰作用范围,分为两种类型:

设置单个会话的提醒状态。通过此方法,您可以屏蔽某个会话的通知提醒和推送。

设置所有会话的通知免打扰。可以设置某一个时间段免打扰,也可以设置全天免打扰。

一、设置单个会话提醒状态

a.会话提醒状态

会话状态可以分为以下两种:

enumConversationNotificationStatus {    DO_NOT_DISTURB(0),// 会话免打扰状态NOTIFY(1);// 会话提醒状态}

当设置会话状态为 DO_NOT_DISTURB 时,客户端将不会收到消息推送。您也可以根据此状态,调整收到在线消息时的处理逻辑,如屏蔽后台通知和提示音等。

b.设置会话提醒状态:

/** * 设置会话消息提醒状态。 * *@paramconversationType  会话类型。 *@paramtargetId          目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。 *@paramnotificationStatus 是否屏蔽。 *@paramcallback          设置状态的回调。 */publicvoidsetConversationNotificationStatus(finalConversation.ConversationType conversationType,finalString targetId,finalConversation.ConversationNotificationStatus notificationStatus,finalResultCallback callback)

c.获取会话提醒状态

/** * 获取会话消息提醒状态。 * *@paramconversationType 会话类型。 *@paramtargetId        目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。 *@paramcallback        获取状态的回调。 */publicvoidgetConversationNotificationStatus(finalConversation.ConversationType conversationType,finalString targetId,finalResultCallback callback)

注意:会话提醒状态是保存在融云服务器的,建议您在第一次登录应用时,先通过此方法到服务器同步一下会话提醒状态。

二、设置所有会话的通知免打扰

通过此方法设置通知免打扰之后,在所设置的免打扰时间段内,如果应用处于离线状态(即和融云服务器处于断开连接的状态),将不会收到消息推送。

如果处于非离线状态,客户端是仍然可以收到消息的,此时的消息是否提醒逻辑由您自己实现。

a.设置通知免打扰时间段

/** * 设置消息通知免打扰时间。 * *@paramstartTime  起始时间 格式 HH:MM:SS。 *@paramspanMinutes 设置的免打扰结束时间距离起始时间的间隔分钟数。 0 < spanMinutes < 1440。 *                    比如,您设置的起始时间是 00:00, 结束时间为 23:59,则 spanMinutes 为 23 * 60 + 59 = 1339 分钟。                        *@paramcallback    消息通知免打扰时间回调。 */publicvoidsetNotificationQuietHours(finalString startTime,finalintspanMinutes,finalOperationCallback callback)

注:spanMinutes 是指您设置的免打扰结束时间距离起始时间的间隔。比如,您设置的起始时间是 00:00, 结束时间为 23:59,则 spanMinutes 为 23 * 60 + 59 = 1339 分钟。

b.取消通知免打扰

/** * 移除消息通知免打扰时间。 * *@paramcallback 移除消息通知免打扰时间回调。 */publicvoidremoveNotificationQuietHours(finalOperationCallback callback)

会话置顶

可以通过下面的方法设置某一会话为置顶,或者取消置顶。

/** * 设置某一会话为置顶或者取消置顶,回调方式获取设置是否成功。 * *@paramconversationType 会话类型。 *@paramid              目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id。 *@paramisTop            是否置顶。 *@paramcallback        设置置顶或取消置顶是否成功的回调。 */publicvoidsetConversationToTop(finalConversation.ConversationType conversationType,finalString id,finalbooleanisTop,finalResultCallback callback)

获取会话未读消息数

获取所有会话的未读消息数(不包含聊天室,因为聊天室消息不计数)

/** * 通过回调方式,获取所有未读消息数。即除了聊天室之外其它所有会话类型的未读消息数。 * *@paramcallback 消息数的回调。 */publicvoidgetTotalUnreadCount(finalResultCallback callback)

获取指定的某几个会话的未读消息数

/** * 通过回调方式,获取所有指定会话的未读消息数(聊天室除外)。 * *@paramcallback      获取未读数的回调。 *@paramconversations 需要获取未读数的指定会话。 */publicvoidgetTotalUnreadCount(finalResultCallback callback,finalConversation... conversations)

获取指定的某一条会话的未读消息数

/** * 根据会话类型的目标 Id,回调方式获取来自某用户(某会话)的未读消息数。 * *@paramconversationType 会话类型。 *@paramtargetId        目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。 *@paramcallback        未读消息数的回调。 */publicvoidgetUnreadCount(finalConversation.ConversationType conversationType,finalString targetId,finalResultCallback callback)

获取某一种或某几种会话类型的未读消息数

/** * 回调方式获取某会话类型的未读消息数。 * *@paramcallback          未读消息数的回调。 *@paramconversationTypes 会话类型。 */publicvoidgetUnreadCount(finalResultCallback callback,finalConversation.ConversationType... conversationTypes)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值