腾讯IM使用后的一些小终结

1.A方发送消息的话,B方 完成  TIMMessageListener  接口并开启的页面都会通过   onNewMessages  接收到消息,而这时B方再调用  TIMManagerExt.getInstance().getConversationList()  方法获取 所有未读消息时,与A方通讯的消息通话中未读消息就会更新 +1,B方可以处理,但由于 A方是发送方,所以即使调用获取未读消息的方法,与B方通讯的消息通话中的未读数还是不会有变化,不会 +1 。

 

 

2.如果B方收到消息后没有设置已读的话,A方再发来消息,信息未读数只会不断叠加。

 

 

3.  List<TIMConversation> conversationList = TIMManagerExt.getInstance().getConversationList();  是获取消息通话的列表。

循环过滤   for (TIMConversation timConversation : conversationList)   时,先要获取单个用户的通讯信息

TIMConversationExt conExt = new TIMConversationExt(timConversation);  而 TIMMessage  lastMsg  = conExt.getLastMsg()  指的是最后一条信息, TIMElem elem = lastMsg.getElement(0)  是里面具体的内容,之后可以判断类型,进而转换,获取里面的数据后进行数据操作。

TIMMessage  中包含 TIMElem 数组,TIMElem 里面才是真正对话的内容,可以用  isSelf()  方法来判断是否自己发的,大部分返回接口会返回  TIMMessage 数组,要用循环但反向的来获取 TIMMessage 。

getLastMsg() 只返回一个,而且里面的 TIMElem 也只有一个或没有,所以要判断是否为空。

 

 

4. 如果根据数据判断后想把某位用户到当前为止的通讯记录设置为已读的话,可以调用 

conExt.setReadMessage(null, new TIMCallBack() {
    @Override
    public void onError(int i, String s) {
    }

    @Override
    public void onSuccess() {
    }
});

来进行设置。conExt是与单个用户的通讯信息,可以用上面的方法获取,也可以

TIMConversation mConversation = TIMManager.getInstance().getConversation(TIMConversationType.C2C, peer);
C2C 是通话类型,peer 就对方ID,之后  TIMConversationExt conExt = new TIMConversationExt(timConversation); 

就可以获取了。

 

 

5. 在聊天页面 chatactivity 注册  TIMMessageListener  接口,退出时  注销接口  并  标记当前通话已读  。、

 

 

6. 在mainactivity  和单独聊天的  chatactivity 都注册  TIMMessageListener  接口,

在   mainactivity  的  onNewMessages 和 onResume 都统计未读数,

在  chatactivity  页面结束时标记当前通话已读,

这样一来虽然在chatactivity页面时两个都会收到消息统计未读数,但当切换回页面到 mainactivity 时,就会重新统计,之前通话的都变为已读,就不会出错了。而在 mainactivity 页面时,可以实时获取未读信息进行统计。

 

 

7.在IM的好友资料中,getUsersProfile 获取的好友资料

这里面的信息,如头像,性别,生日等是用户自己通过 modifySelfProfile 方法上传的信息,对所有好友可见的,公开的,是一对多的信息。

但用 getFriendList 所获取的好友信息

是当前用户对好友的自定义描述信息,是一对一的。上面的备注是当前用户对指定用户所写的备注,分组也是当前用户对指定用户的分组,是私密非公开的,只对自己的,是一对一的。所有如果有一些只对自己或对方可见的,和别人无关的信息,可以写入备注当中,比如系统自定义的亲密度,只有当前用户和对方主播之前的关系,别人看不到的,就可以写在双方的备注当中。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值