android 环信集成聊天界面,消息列表界面 都需要设置头像和昵称的功能,不知道怎么做
网上看到很多人用easeui 里面的EaseChatFragment实现聊天界面,
EaseConversationListFragment实现联系人界面,我现在项目中需要实现头像和昵称的设置,发现网上设置头像的都是在环信的demo中去改,难道我要把环信demo 中类都拷贝到自己的项目中吗,我发现需要拷贝很多类,还是全部拷贝进去,网上说需要修改demohelper 这个类 。 求大神指导下 我该怎么实现
EaseConversationListFragment实现联系人界面,我现在项目中需要实现头像和昵称的设置,发现网上设置头像的都是在环信的demo中去改,难道我要把环信demo 中类都拷贝到自己的项目中吗,我发现需要拷贝很多类,还是全部拷贝进去,网上说需要修改demohelper 这个类 。 求大神指导下 我该怎么实现
没有找到相关结果
已邀请:
1 个回复
H-Mo/怠惰
1.写一个用户信息数据库打开帮助类
2.写出DAO
3.在你的APP的 MxApplication 中设置用户信息提供者
EaseUI.getInstance().setUserProfileProvider(new EaseUserProfileProvider() {
4.getUserInfo()方法中查询数据库,数据库没有就联网获取@Override
public EaseUser getUser(String username) {
return getUserInfo(username);
}
});
private EaseUser getUserInfo(String username){
注意:getUser(String username)调用是在主线程的,所以联网获取昵称头像需要异步执行.// 创建对象
EaseUser easeUser = new EaseUser(username);
// 先从本地数据库中查找数据
EMUserInfoDAO dao = new EMUserInfoDAO(mContext);
EMUserInfo userInfo = dao.query(username);
if(userInfo != null){
easeUser.setNick(userInfo.getName());
easeUser.setAvatar(userInfo.getIcon());
return easeUser;
}
// 本地数据库没有,就子线程联网请求一条数据
updateUserInfo(username);
// 暂时返回ID作为昵称
easeUser.setNick(username);
easeUser.setAvatar(FileURLBuilder.getUserIconUrl(username));
return easeUser;
}
// 更新这个用户的信息
protected void updateUserInfo(final String id) {
// 再联网从服务器查询
String url = GlobalConfig.URL_seachUserByUser; //请求地址
// 请求数据
Map<String, String> params = new HashMap<String, String>();
params.put("account", id);
HttpUtils.get().doPOST(url, params, new NetRequestListener<String>() {
@Override
public void onResponse(String result) {
// 解析数据
List<User> users = JsonUtil.parseList(result, User.class);
if(users.size() == 0){
return;
}
User user = users.get(0);
// 缓存数据
EMUserInfoDAO dao = new EMUserInfoDAO(mContext);
dao.save(id,user.getUserName(),FileURLBuilder.getUserIconUrl(id));
}
});
}
---------------------------------------------
此时,已经可以显示昵称和头像了.不过还有些问题,就是当用户修改昵称和头像的时候,本地数据库没有及时更新数据.
---------------------------------------------
4.写个 MyChatFragment 继承 EaseChatFragment 并设置聊天界面的监听
5.发送消息的时候,吧当前用户的昵称,头像携带进去
6.接受到消息的时候,取出昵称,头像,保存到数据库
到此,完成.