即时通信(集成第三方)

项目要求需要聊天功能,还需要比较完善的聊天功能,还要一个星期左右做完,想想,真难,最后只能用第三方,环信一个还比较靠谱的第三方

介绍下这个的嵌入吧,很简单,最笨的办法,把他的所有代码都拷到你的项目中,所有的,一个不少,然后把你的application中加入application中的初始化代码

在,然后把你自己程序的用户的userId作为环信注册的id,这样就可以把你的软件跟他的聊天功能进行绑定,绑定以后你就可以再你需要聊天的地方直接跳转聊天界面,只要把你当前用户的userId传过去就ok,很简单吧,其实东西不难,只是缺少实践。

            还有需要注意的地方是

EMChatManager.getInstance().login(userId+"", MainApplication.PASSWORD, new EMCallBack() {

@Override
public void onSuccess() {
// TODO Auto-generated method stub

System.out.println("jinlai l wa w a a a"+userId);
// demo中简单的处理成每次登陆都去获取好友username,开发者自己根据情况而定



// 获取群聊列表(群聊里只有groupid和groupname等简单信息,不包含members),sdk会把群组存入到内存和db中
try {
EMGroupManager.getInstance().loadAllGroups();
EMChatManager.getInstance().loadAllConversations();
List<String> usernames = EMContactManager.getInstance().getContactUserNames();
EMLog.d("roster", "contacts size: " + usernames.size());
Map<String, User> userlist = new HashMap<String, User>();
for (String username : usernames) {
User user = new User();
user.setUsername(username);

userlist.put(username, user);
}
// 添加user"申请与通知"
User newFriends = new User();
newFriends.setUsername(Constant.NEW_FRIENDS_USERNAME);
newFriends.setNick("申请与通知");
newFriends.setHeader("");
userlist.put(Constant.NEW_FRIENDS_USERNAME, newFriends);
// 添加"群聊"
User groupUser = new User();
groupUser.setUsername(Constant.GROUP_USERNAME);
groupUser.setNick("群聊");
groupUser.setHeader("");
userlist.put(Constant.GROUP_USERNAME, groupUser);


// 存入内存
MainApplication.getInstance().setContactList(userlist);
// 存入db
UserDao dao = new UserDao(Login_bindingActivity.this);
List<User> users = new ArrayList<User>(userlist.values());
dao.saveContactList(users);
EMGroupManager.getInstance().getGroupsFromServer();
} catch (EaseMobException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

@Override
public void onProgress(int arg0, String arg1) {
// TODO Auto-generated method stub

}

@Override
public void onError(int arg0, String arg1) {
// TODO Auto-generated method stub

}
});


这个里边的代码就是保存联系人,等的代码是不能删除的,否则你在下次进来调用最近联系的时候是没有数据的,还是多看api就好了、


聊天现在如果是自己开发的话,一般用的多的都是xmpp+openFire+asmake,如果时间又短又要效果那么就用第三方吧,对于程序原来说,有时候只要实现了功能就ok了

上一篇:Toast自定义显示时长的解决方案


下一篇:VS中工程图片资源文件的应用