android 融云浏览大图,融云 Android sdk kit 头像昵称更新机制

先申明笔者的实现方式不是唯一 也不一定是最优化的方案 如果您看到此篇博文 有不同看法 或者 更好的优化 更高的效率 欢迎在评论发表意见 融云官网点我

融云头像机制相关视频详解

首先跟大家说一下 kit 跟 lib 的头像机制 kit 是已经包含融云已经给开发者定制好的界面 诸如 会话界面 会话列表 1.0+版本还有好友列表 设置页面等 lib 是通讯能力库 所以开发者如果是基于 lib 开发 本篇博文对你来说就是不适用的 因为 lib 是自己去实现聊天界面 头像 和 昵称的展示就需要你自己去做管理了

token:

这边还需要跟大家引入一下  token 的概念 您也可以参阅 OAuth2.0协议 , 对于用户来说 是没有 token  这个概念的 他们只有 帐号 密码 昵称 头像等 , 但是对于开发者来说 token 是您连接融云 服务器的身份令牌 你必须要有 token 才能连接到融云 服务器  而且 token 是唯一的 就跟你的 userid 一样是一一对应的

关于token的获取  目前融云 提供了两种获取方式:

1: 在你还在做测试 或者 你的 server 还没有搭建好的时候 可以去融云官网  登录你的开发者帐号 在 API 调试平台进行token获取 见下图:

42b64b4eacede8e316b4229225c48b2f.png

点击以后  在该页面下方  会返回一个模拟的 json 窜 给你  如果 提示 200 就是表示获取token成功 你即可以把 json 中的 token 摘取出来

自己保存以后 留作测试用

2 测试完毕 或者服务器已经搭建好了 需要动态获取 token ,这个时候的一个逻辑就是  您的 server 服务器 找融云服务器 获取 token

(详情见官网server文档),然后您的服务器

提供接口给你的客户端 去请求 这个token ,有小部分开发者疑惑为什么一定要自己的服务器 这点是必须有的 获取 token 只是

服务器最基本的功能 还有很多 你自身的逻辑需要有 server 去维护

注:不管您是通过测试平台获取 token 还是 服务端 找 融云 server 获取 token 时候 有三个值  userid  username portraitUri 这边

强烈建议您把 昵称 和 头像都填上

name&portrait:

用户信息提供者: 1.0+ setGetUserInfoProvider  2.0+  setUserInfoProvider

用户信息提供者 实现成功以后 在你的 会话界面 和 会话列表 头像和昵称 是会有正确展现的 实现代码如下:

RongIM.setUserInfoProvider(this, false);

/**

* 用户信息的提供者

*

* 融云会话界面 和 会话列表的 头像 昵称展示

*/

@Override

public UserInfo getUserInfo(String userId) {

//先从获取数据库操作的实例

FriendDao friendDao = DBManager.getInstance(MainActivity.this)

.getDaoSession().getFriendDao();

//获取数据库中我所有好友的bean对象

List friends = friendDao.loadAll();

if (friends != null && friends.size() > 0) {

//增强for把所有的用户信息 return 给融云

for (Friend friend : friends) {

//判断返回的userId

if (friend.getRongId().equals(userId)) {

return new UserInfo(friend.getRongId(), friend.getName(),

Uri.parse(friend.getPortraitUri()));

}

}

}

return null;

}

用户信息提供者调用的实际建议在 init connect 之后 , 调用 会话列表 和 会话界面之前,笔者是在登录的时候先把好友属性

从自己的server 请求下来 塞到数据库中做一个数据库缓存 , 当然您自己可以有更好的方式 这边仅作参考 设置以后

你可以观察调用的时机 和 在 return 前输出 每个对象 看看是否已经 return 给我们

refresh:

用户信息的刷新我们这边也提供了方法 请参见下面代码 :

2.0+:

private void refreshUserInfo(UserInfo userInfo) {

if (userInfo == null||mRrongIMClient == null) {

throw new IllegalArgumentException();

}

if(RongContext.getInstance()!=null){

RongContext.getInstance().getUserInfoCache().put(userInfo.getUserId(),userInfo);

}

}

1.0+:

private void refreshUserInfo(UserInfo userInfo) {

if (userInfo == null||mRrongIMClient == null) {

throw new IllegalArgumentException();

}

if(RCloudContext.getInstance()!=null){

RCloudContext.getInstance().getUserInfoCache().put(userInfo.getUserId(),userInfo);

}

}

文章结束之前 提醒下 头像的 路径支持 http:// 或者 本地 sd 卡 file:/// 另

外不要使用内网 局域网路径 您可以在浏览器看看是否能够正常解析 来做检测 非常感谢大家耐心看完

希望文章能够对你有帮助

推荐github上一个好用的框架

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux中的awk、sed、grep及正则表达式详解

Linux中的awk、sed、grep及正则表达式详解 简介 awk、sed和grep是Linux中文本操作的三大利器。 其中awk适用于取列,sed适用于取行,grep适用于过滤。 正则表达式 首先我们来介绍一下正则表达式,正则表达式(regular expression)描述了一种…

android聚焦时如何给控件加边框,edittext设置获得焦点时的边框颜色

第一步:为了更好的比较,准备两个一模一样的EditText(当Activity启动时,焦点会在第一个EditText上,如果你不希望这样只需要写一个高度和宽带为0的EditText即可避免,这里就不这么做了),代码如下:a…

xargs 命令教程

xargs 命令教程 转自:http://www.ruanyifeng.com/blog/2019/08/xargs-tutorial.html 作者: 阮一峰 日期: 2019年8月 8日 xargs是 Unix 系统的一个很有用的命令,但是常常被忽视,很多人不了解它的用法。 本文介绍如…

android strictmode有什么作用,Android 性能优化 之 StrictMode

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?StrictMode概述StrictMode 是用来检测程序中违例情况的开发者工具。使用StrictMode,系统检测出主线程违例的情况会做出相应的反应,如日志打…

curl 的用法指南

curl 的用法指南 转自:http://www.ruanyifeng.com/blog/2019/09/curl-reference.html 作者: 阮一峰 日期: 2019年9月 5日 简介 curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client&#xf…

怎么在html显示已登录状态,jQuery Ajax 实现在html页面实时显示用户登录状态

当网站是全静态的html页面时,而又希望网站会员在登录之后并在所有页面头部显示登录状态,如用户名等,如果未登录就是未登录状态,下面给大家来分享实现的方法。一、在html静态页面中加入div,并指定ID如:二、新…

xpwifi热点设置android,教你在XP电脑中开启设置WiFi热点使用的步骤

对于系统中网络的连接问题是最重要的,那在处理不同的错误的情况中,对于无线网络的设置也就是我们说的WiFi的使用也是会遇到问题的,那在操作的时候对于电脑中是怎么实现设置WiFi热点的的,对于这个问题今天小编就来跟大家分享一下教…

C/C++ 指针详解

指针详解 参考视频:https://www.bilibili.com/video/BV1bo4y1Z7xf/,感谢Bilibilifengmuzi2003的搬运翻译及后续勘误,也感谢已故原作者Harsha Suryanarayana的讲解,RIP。 学习完之后,回看找特定的知识点,善…

android双联动列表,Android Fragment实现列表和内容联动

在平板上经常能看到这种的情况:左边是一个列表,右边是列表项对应的内容,当点击某一个列表时,右边内容区也会随之改变。下面使用fragment简单的demo:思路:在mainactivity定义一个回调接口,并在列…

android模拟器太卡,安卓模拟器安装之后太卡怎么解决

用安卓模拟器玩游戏原理就是在电脑上安装了一部手机,如果你的电脑配置不是非常高,能不卡顿吗?遇到卡顿怎么解决?1、安装最新版本的显卡驱动。逍遥模拟器对于显卡的性能要求很高,因此升级至最新版本的显卡驱动,是确保逍遥模拟器流…

编程环境中Runtime(运行时)的三个含义

编程环境中Runtime(运行时)的三个含义 转自:https://www.zhihu.com/question/20607178 知乎答主doodlewind 三个含义 实际上编程语境中的 runtime 至少有三个含义,分别是: 指「程序运行的时候」,即程序…

非常不错的一款html5【404页面】,不含js脚本可以左右摆动,原生JavaScript实现日历功能代码实例(无引用Jq)...

这篇文章主要介绍了原生JavaScript实现日历功能代码实例(无引用Jq),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下成品显示,可左右切换月份html 代码移动端日历日一二三四五六css代码*{margin: 0;pa…

计算机应用与基础实践怎么考,自考计算机基础应用科目笔试和实践性考试怎么考...

自考计算机基础应用科目笔试和实践性考试怎么考? 报考自考的考生有些专业的考生会在自己的课程科目中发现计算机基础应用不仅有理论知识考试还有实践性考试,那么自考计算机基础应用科目的笔试和实践性考试怎么考?自考计算机基础应用科目笔试怎…

14 [虚拟化] 虚存抽象;Linux进程的地址空间

14 [虚拟化] 虚存抽象;Linux进程的地址空间 南京大学操作系统课蒋炎岩老师网络课程笔记。 视频:https://www.bilibili.com/video/BV1N741177F5?p14 讲义:http://jyywiki.cn/OS/2021/slides/10.slides#/ 本讲概述 程序 状态机;…

Ubuntu 18.04 安装OpenCV C++

Ubuntu 18.04 安装OpenCV C 构建并安装 仅构建核心模块 # 更新并安装依赖 # 更新并安装依赖 sudo apt update && sudo apt install -y cmake g wget unzip# 下载并解压包 wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip unzip opencv.zip…

html计算x的y,HTML5画布:旋转时计算x,y点

我开发了一个HTML5 Canvas应用程序,它涉及到读取一个xml文件,该文件描述了需要在画布上绘制的箭头,直形和其他形状的位置。的XML布局的HTML5画布:旋转时计算x,y点实施例:如果对象被旋转它涉及计算一个点的位…

(2021) 20 [虚拟化] 进程调度

(2021) 20 [虚拟化] 进程调度 南京大学操作系统课蒋炎岩老师网络课程笔记。 视频:https://www.bilibili.com/video/BV1HN41197Ko?p20 讲义:http://jyywiki.cn/OS/2021/slides/11.slides#/ 背景 — 机制与策略分离 机制:一个通用的、可定制…

局域网中计算机网络密码查看,Win10怎么查看电脑上已知的wifi网络密码

方法一:网络和共享中心查询1、在Windows 10桌面最左下角的【Windwos开始图标上右键】,在弹出的菜单中点击打开【网络连接】,如下图所示。2、在打开的网络连接设置中,双击已经连接的【无线网络名称】,在弹出的【WLAN状态…

(2021) 22 [持久化] 1-Bit的存储

(2021) 22 [持久化] 1-Bit的存储 南京大学操作系统课蒋炎岩老师网络课程笔记。 视频:https://www.bilibili.com/video/BV1HN41197Ko?p22 讲义:http://jyywiki.cn/OS/2021/slides/12.slides#/ 背景 回顾 操作系统是什么?一组对象 一组API…

(2021) 23 [持久化] I/O设备与驱动

(2021) 23 [持久化] I/O设备与驱动 南京大学操作系统课蒋炎岩老师网络课程笔记。 视频:https://www.bilibili.com/video/BV1HN41197Ko?p23 讲义:http://jyywiki.cn/OS/2021/slides/13.slides#/ 背景 很多人 (你们的同学们、家长们) 都有一个认识&…