`
kurting615
  • 浏览: 93423 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

spark二次开发之广播消息(针对群用户)的实现

    博客分类:
  • IM
 
阅读更多

代码如下

       try {
        	groupNode = new CheckNode("群");
        	groupNodes.add(groupNode);
        	rosterNode.add(groupNode);
			manager = BookmarkManager.getBookmarkManager(SparkManager.getConnection());
		      Collection<BookmarkedConference>    lists =  manager.getBookmarkedConferences();
		for(BookmarkedConference bookMark:lists){
//			if(bookMark.isAutoJoin()){//只能向自动登录的房间发送消息
			CheckNode itemNode = new CheckNode(bookMark.getName());//群名称节点
			groupNode.add(itemNode);
			for (int i = 0; i < 1; i++) {
				Map<String, Affiliate> mbs =ConferenceUtils.getAllMembersInRoom(bookMark.getJid());//得到群聊房间的所有用户
				Set<String> keys = mbs.keySet();
				Iterator<String> iter2 = keys.iterator();
				while (iter2.hasNext()) {
					String key = iter2.next();
					Affiliate affiliate = mbs.get(key);
					if (affiliate == null)
						return;
					String jid = affiliate.getJid();
					String nickName =getNickName(jid);
					CheckNode gNode = new CheckNode(nickName, false, null);//群成员节点
					gNode.setAssociatedObject(jid);//设置节点值
					itemNode.add(gNode);
					nodes.add(gNode);//加入到所有的checkbox选项中
				}
			}
			}
//		}
		} catch (XMPPException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
        

 获取用户昵称代码:

	private String getVcardName(String participantJID, String nickname,
			String hostName) {
		try {
			VCard v = new VCard();
			v.load(SparkManager.getConnection(), participantJID);
			nickname = v.getFirstName();
			if (nickname == null || nickname.equals("")) {
				nickname = participantJID.substring(0,
						participantJID.indexOf("@"));
			}
		} catch (XMPPException e) {
			e.printStackTrace();
		}
		return nickname;

	}

 效果图:



 注意:必须为登录后自动连接的群才可以获取所有用户

  • 大小: 57 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics