注册

【环信集成笔记】进阶篇-android环信昵称头像解决方法

当你刚刚集成环信的时候,在和自己android组的小伙伴玩的不亦乐乎的时候,当你过完这把瘾的时候,那么接下来,你就要考虑的是怎么让这个头像显示的是自己想要的头像,怎么让昵称显示自己的昵称.....

那么接下来,我来告诉大家,怎么解决昵称头像的问题,

首先,这篇文章是接在我大表哥江南孤鹜在im社区写的一篇文章之后写的,上个链接地址 Android获取昵称头像接下来,我对此文章做些补充:

我看到有些人在问,这个方法放在哪里?


1.png


好吧,大表哥没说出来,这个放在UserApiModel里面

那么接下来,大表哥写的是这样的,利用扩展消息去获取头像昵称,在这里我提醒下大家,要判断这个头像是自己的还是好友的

2.png


怎么判断呢,作为新手的我们,我推荐使用shareprefences在登陆的时候保存下自己的头像昵称,然后再这里获取,并且设置给扩展


3.png


在demohelper里面有个getuserinfo方法

4.png


这里就是把获取到的头像昵称设置给环信,然后显示出来,这里最重要,切记不要写错。

那么,到此为止,其实都说完了,可是,毕竟是一个延伸,怎么可能就此结束,接下来给大家看下,请求数据,然后设置给数据库


5.png


请求的过程我就不写了,这个大家都会,获取到username,id,logo,之后先要把头像,昵称存到userdao里面,如果userdao是环信的一个数据库,这个大家自己看看demo的代码就知道了,设置到这里,是为了在联系人列表里面显示,UserInfoCacheSvc.createOrUpdate(id,username,logo_img);这句就是把头像昵称放到大表哥写的数据库里面

最后,补充一下,忘记说了,导入框架

6.png


好了,这样就结束了,如果有什么还不明白,就加入大表哥粉丝群(环信IM互帮互助群 340452063),我会帮你解答一切问题

18 个评论

表弟又偷懒,发图片不发代码o(╯□╰)o
好 我这几天搞个demo
有demo没 急用哇
现在还没有
啥时候有哇,大神
月底就会出
感谢大神,大神,月末了,demo呢
恩 别急 很快就好
老司机,小视频来一发。
陈日明

陈日明 回复 Gj

视频不能播放?
Gj

Gj 回复 陈日明

厉害了world哥,龙虾。我是在等你的demo~~
请问有demo吗
今天重装系统 代码删除了 。。。我得重新写个
大表哥,提供一下demo
public static UserApiModel getById(long id){ Dao<UserApiModel, Integer> dao = SqliteHelper.getInstance().getUserDao(); Log.i("-->>", "getById: " + dao.toString()); try { QueryBuilder<UserApiModel, Integer> builder = dao.queryBuilder(); Where<UserApiModel, Integer> where = builder.where(); Where<UserApiModel, Integer> eq = where.eq("Id", id); UserApiModel userApiModel = eq.queryForFirst(); LogUtils.i("-->>builder:" + builder + ",where:" + where + ",eq:" + eq); UserApiModel model = dao.queryBuilder().where().eq("Id", id).queryForFirst(); return model; } catch (SQLException e) { e.printStackTrace(); } return null; } 大神,queryForFirst()这一行报错,不知道哪里出了问题。 java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.sqlite.SQLiteDatabase android.content.Context.openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase$CursorFactory, android.database.DatabaseErrorHandler)' on a null object reference
id为空
你们要的demo在github上面 去直接搜索LiangKe Cloudant-crm 是我的
private void setUserInfoAttribute(EMMessage message) { try { message.setAttribute(SharePrefConstant.ChatUserId, PrefUtils.getUserChatId()); message.setAttribute(SharePrefConstant.ChatUserNick, PrefUtils.getUserName()); Logger.e("Wu","昵称 = "+PrefUtils.getUserName()); message.setAttribute(SharePrefConstant.ChatUserPic, "http://image.baidu.com" + PrefUtils.getUserPic()) ;//这里用是图片的完整链接地址,如果要取缩略图,需要服务端配合; } catch (Exception e) { e.printStackTrace(); Logger.e("Wu","用户的属性有无异常 = "+e.getMessage()); } } 我这里面获取PrefUtils.getUserName()是空的,步骤都是跟着你和大表哥走的,是不是哪里差了什么!!

要回复文章请先登录注册