安卓融云SDK的使用,会话列表,1v1发起单聊

1v1发起单聊 继承ConversationFragment

前提把融云该导入的SDK和UI包都导入一下,这个不多说,按照官方文档即可

不管是会话列表还是1v1单聊都要先连接融云的服务器

String token = "用户Token";//可以从自己后端服务器获得
RongIM.connect(token, new RongIMClient.ConnectCallback() {@Overridepublic void onDatabaseOpened(RongIMClient.DatabaseOpenStatus code) {//消息数据库打开,可以进入到主页面}@Overridepublic void onSuccess(String s) {//连接成功}@Overridepublic void onError(RongIMClient.ConnectionErrorCode errorCode) {if(errorCode.equals(RongIMClient.ConnectionErrorCode.RC_CONN_TOKEN_INCORRECT)) {//从 APP 服务获取新 token,并重连} else {//无法连接 IM 服务器,请根据相应的错误码作出对应处理}}
})

启动单聊页面 哪里调用写哪里

                 //启动单聊会话页面 在哪里点击的就在哪里调用Conversation.ConversationType conversationType =Conversation.ConversationType.PRIVATE;//RongyunUserID RongyunUserName 对方信息String targetId = RongyunUserID;//这个是对方的idString title =RongyunUserName;//这个可以设置对方的名字Bundle bundle = new Bundle();if (!TextUtils.isEmpty(title)) {bundle.putString(RouteUtils.TITLE, title); //会话页面标题}RouteUtils.routeToConversationActivity(OneChatActivity.this, conversationType, targetId, bundle);

**因为我是通过Fragment的方式进行发起会话页面的所以 要先有一个Activity的fragment进性承接

 public class UserChatActivity extends BaseActivity {//获取对方的id和名字 Bundle bundle = getIntent().getExtras();String name = bundle.getString(RouteUtils.TITLE,"");//名字String targetId = bundle.getString(RouteUtils.TARGET_ID);//id//获取完之后对方的信息 你可以用在自己定义的Toobar上toolbarTitle.setText(name);//添加会话页面ConversationFragment conversationFragment = new ConversationFragment();FragmentManager manager = getSupportFragmentManager();FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.container, conversationFragment);transaction.commit();}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><FrameLayoutandroid:id="@+id/container"android:layout_width="match_parent"android:layout_height="match_parent" />
</LinearLayout>

**不要忘记在Application中初始化 AndroidManifest调用

         //注册融云会话页面RouteUtils.registerActivity(RouteUtils.RongActivityType.ConversationActivity, UserChatActivity.class);

会话列表 ConversationListFragment

上面说过先连接融云服务器,如果上面连接过,这个不用连接了

**会话列表用Activity和Fragment都可以 这个以fragment为例
替换Fragment的过程跟上面一样

 //添加会话页面ConversationListFragment conversationListFragment = new ConversationListFragment ();FragmentManager manager = getSupportFragmentManager();FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.container, conversationListFragment );transaction.commit();
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><FrameLayoutandroid:id="@+id/container"android:layout_width="match_parent"android:layout_height="match_parent" />
</LinearLayout>

下面是替换过后 也要进在Application中初始化

   //会话列表RouteUtils.registerActivity(RouteUtils.RongActivityType.ConversationListActivity, MyConversationListActivity.class);

重要的部分来了

1.1v1聊天后会话页面列表所有的人的id和头像一样
2.而且只显示id
解决如下
融云列表是需要设置信息的

         //连接融云成功后设置当前用户的信息 缓存到本地,// 如果没有会getUserInfo回调进行访问接口, 从App服务端获取列表某个userId的用户信息RongUserInfoManager.getInstance().setUserInfoProvider(new UserDataProvider.UserInfoProvider() {/*** 获取设置用户信息. 通过返回的 userId 来封装生产用户信息.* @param userId 用户 ID*/@Overridepublic UserInfo getUserInfo(String userId) {//异步请求findUserByIdFromServer(userId);return null;}}, true);}

#此方法是访问后端根据用户/融云id获取信息,需要后端来提供接口查询用户的信息,
而且上面的getUserInfo会多次进行回调接口,不用担心会话列表用户多的问题

private void findUserByIdFromServer(String userId) {Map<String, String> map = new HashMap<>();map.put("userId",userId);addSubscribe(createAdd(APIsimap.class).getAllUserinfo(map),new BaseObserver<RongYunUserBean.DataBean>(){@Overrideprotected void onFail(int code, String message) {}@Overrideprotected void onSuccess(RongYunUserBean.DataBean data, String message) {//获取成功后setUserInfo myUserInfo = new UserInfo(String.valueOf(data.id()), data.name(), Uri.parse("图片的地址"));//这个方法是融云设置缓存到本地RongIM.getInstance().refreshUserInfoCache(myUserInfo);}});}

然后点击列表的某个用户,在跳到单聊的那个页面可以这样接收id,在进行查询后端接口拿出数据即可

 String targetId= getIntent().getStringExtra("targetId");

安卓融云SDK的使用,会话列表,1v1发起单聊相关推荐

  1. ios 融云 重写对话列表_iOS集成融云SDK part 1 小记

    之前虽然稍微了解过即时通讯方面的内容,但是一直没有怎么去做过聊天部分的.这次是刚刚使用融云,做一下记录. 关于融云SDK集成的具体步骤,我都是参考以下这些文章(很多图片都是直接从这些地方拿的,我真是太 ...

  2. iOS---集成融云SDK即时通讯

    链接:https://www.jianshu.com/p/eabfb0a93cf9 相信大家在项目中会用到即时通讯功能,自己去写的话会需要前后台合作,会大大加大开发的周期,所以考虑使用第三方的即时通讯 ...

  3. 融云SDK实现类QQ即时通讯的前端开发

    一.概述 接到一个需求,需要在我们的客户端里实现类似QQ的社交功能,以方便玩家之间的沟通互动.我们的客户端是C++实现的,在开会讨论考虑到成本和时间问题,实现这个功能的任务交个了前端.为了简化说明,我 ...

  4. android 融云sdk集成,使用融云SDK集成

    使用融云开始还是遇到了很多的坑的,特别是看不太明白官方文档.或许自己不够有耐心. 期间还遇到了许多bug,比如,明明配置的没问题了,可我的手机还是连不上融云. 后来还是在融云的知识库中找到了解决办法, ...

  5. 基于融云SDK实现高仿微信

    本篇主要介绍了一下本人正式完成的第一个Android demo应用. 1.demo运行效果图 2.为了实现微信的体验效果,这里面用到了几个特殊的控件或者技术. 2.1 第一张图中的"+&qu ...

  6. 集成融云 SDK 怎么实现多端同步未读数

    最近在集成融云 SDK 的时候,碰到了一个跟未读数有关的问题,现象是这样的: 比如我在其中 Web 端已经清除了某个会话的未读数然后退出,再换个设备登入,这个时候未读数还有,并没有清除掉,我就纳闷了, ...

  7. android融云消息提示,如何解决 嵌入融云SDK后, Android 手机收不到消息推送?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 很多人在嵌入融云SDK之后,遇到过Android手机收不到消息推送问题.下面来给大家一些干货.解决Android类手机收不到消息推送的解决方法.供大家参考 ...

  8. 融云 android 推送图标,如何解决 嵌入融云SDK后, Android 手机收不到消息推送?...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 很多人在嵌入融云SDK之后,遇到过Android手机收不到消息推送问题.下面来给大家一些干货.解决Android类手机收不到消息推送的解决方法.供大家参考 ...

  9. android 融云消息推送,如何解决 嵌入融云SDK后, Android 手机收不到消息推送?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 很多人在嵌入融云SDK之后,遇到过Android手机收不到消息推送问题.下面来给大家一些干货.解决Android类手机收不到消息推送的解决方法.供大家参考 ...

最新文章

  1. 特斯拉AI主管给你的33条深度学习训练建议
  2. 指针嵌套指针 拷贝_C++智能指针小结
  3. linux专用的opencv下载链接(持续更新)
  4. springmvc+mybatis+dubbo+zookeeper分布式架构
  5. 关于opencv中Mat赋值(浅拷贝,深拷贝)原理
  6. C#通过DllImport引入dll中的C++非托管类
  7. TOTP 介绍及基于 C# 的简单实现
  8. java web聊天室私聊map_java websocket聊天室示例(springboot)
  9. ROS下多个kinect在一台电脑上同时运行
  10. neo4j安装_怎样安装Neo4j APOC扩展包?
  11. 【NOIP2005】【Luogu1051】谁拿了最多奖学金
  12. LINQ 花3个礼拜的时间来弄清楚
  13. Vue基础调色板案例
  14. 简单循迹小车实验心得_循迹小车实训报告
  15. Jmeter脚本录制和压测
  16. 大学生转入计算机专业申请书,计算机系大学生助学金申请书1000字
  17. [从0开始机器学习]5.逻辑回归 二分类
  18. 大数据高级开发工程师——Spark学习笔记(10)
  19. czl蒻蒟的OI之路7
  20. 【初探】java性能火焰图的生成

热门文章

  1. java计算机毕业设计Web企业差旅在线管理系统(附源码、数据库)
  2. 【180927】坦克大战游戏源码
  3. 记一次关键字引起的数据库错误
  4. 组装刀片服务器,看图说话!至强7500刀片服务器拆解
  5. 编辑 用Excel制作股票交易表格/日志,带macro宏程序(vba)更新V1.5
  6. 用 WPF 写的颜色拾取器
  7. ToB 产品拆解—Temu 商家管理后台
  8. turtle库绘图:绘制QQ表情“蹭一蹭”
  9. Android使用Shape实现简单的三角和圆形等
  10. 三角形类 (Triangle class)