/*** 融云链接状态监听*/RongIM.setConnectionStatusListener(new RongYunConnectionStatusListener(this));
这样对设备与融云服务器的链接状态进行了监听,当出现上面的几种状态,便对应进行逻辑处理 。
10.发送信息监听
在进行会话的过程中,有时候需要对发送消息的结果进行捕获,这时候应该实现的是
public class RongYunSendMessageListener implements RongIM.OnSendMessageListener {private Context context;public RongYunSendMessageListener(BaseApplication context) {this.context = context;}@Overridepublic Message onSend(Message message) {return message;}@Overridepublic boolean onSent(Message message, RongIM.SentMessageErrorCode sentMessageErrorCode) {if(message.getSentStatus()== Message.SentStatus.FAILED){if(sentMessageErrorCode== RongIM.SentMessageErrorCode.NOT_IN_CHATROOM){//不在聊天室}else if(sentMessageErrorCode== RongIM.SentMessageErrorCode.NOT_IN_DISCUSSION){//不在讨论组}else if(sentMessageErrorCode== RongIM.SentMessageErrorCode.NOT_IN_GROUP){//不在群组}else if(sentMessageErrorCode== RongIM.SentMessageErrorCode.REJECTED_BY_BLACKLIST){//你在他的黑名单中}else{ToastUtil.shortToast(context,"与服务器失去链接,请重新登录");}}return false;}}
/*** 融云发送消息监听*/RongIM.getInstance().setSendMessageListener(new RongYunSendMessageListener(this));
这样对消息发送进行了监听,当出现上面的几种状态,便对应进行逻辑处理 。
11.会话列表刷新头像
在跳转会话列表界面时,可以先进行一次,因为在刷新会话列表的时候需要保证与融云服务器链接正常 。
/*** 更新会话列表头像和标题*/RongIM.getInstance().getConversationList(new RongIMClient.ResultCallback
>() {@Overridepublic void onSuccess(List
io.rong.imlib.model.UserInfo userInfo = new io.rong.imlib.model.UserInfo(result.getPhone(),result.getName(),Uri.parse(result.getImg()));RongIM.getInstance().refreshUserInfoCache(userInfo);
通过这样设置后,会话列表会自动获取最新的用户信息,显示在会话列表上 。
12.会话列表界面操作监听
private class MyConversationListBehaviorListener implements RongIM.ConversationListBehaviorListener{/*** 当点击会话头像后执行 。** @param context上下文 。* @param conversationType 会话类型 。* @param targetId被点击的用户id 。* @return 如果用户自己处理了点击后的逻辑处理,则返回 true,否则返回 false,false 走融云默认处理方式 。*/boolean onConversationPortraitClick(Context context, Conversation.ConversationType conversationType, String targetId){ToastUtils.shorttoast(context,"跳转到用户详情");}/*** 当长按会话头像后执行 。** @param context上下文 。* @param conversationType 会话类型 。* @param targetId被点击的用户id 。* @return 如果用户自己处理了点击后的逻辑处理,则返回 true,否则返回 false,false 走融云默认处理方式 。*/boolean onConversationPortraitLongClick(Context context, Conversation.ConversationType conversationType, String targetId){return false;}/*** 长按会话列表中的 item 时执行 。** @param context上下文 。* @param view触发点击的 View 。* @param uiConversation 长按时的会话条目 。* @return 如果用户自己处理了长按会话后的逻辑处理,则返回 true,否则返回 false,false 走融云默认处理方式 。*/@Overridepublic boolean onConversationLongClick(Context context, View view, UIConversation uiConversation) {return false;}/*** 点击会话列表中的 item 时执行 。** @param context上下文 。* @param view触发点击的 View 。* @param uiConversation 会话条目 。* @return 如果用户自己处理了点击会话后的逻辑处理,则返回 true,否则返回 false,false 走融云默认处理方式 。*/@Overridepublic boolean onConversationClick(Context context, View view, UIConversation uiConversation) {return false;}}
- 基于第三方融云的即时通讯--转载请注明出处
- 青季酒店
- 全球十大金融中心排行,伦敦纽约居首,上海香港新加坡位次交错 上海金融世界之最
- 衡阳农家乐
- 被巴菲特自己称为“金融灾难”的一笔投资,“好骑师”也难驾驭“坏生意”…… 金融类世界吉尼斯记录
- 写字楼融资,公司建设办公大楼如何融资
- AIGC明星独角兽爆雷!7亿融资烧大半,拖欠员工工资,创始人被扒得千疮百孔...
- 内源融资,什么是内源性融资
- 莫泰268
- 索尼大楼