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

本文介绍了如何在Spark中进行二次开发,特别是实现广播消息的功能,针对群用户。通过提供的代码示例,展示了获取群用户昵称的方法,但此操作仅限于登录后自动连接的群。
摘要由CSDN通过智能技术生成

代码如下

       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;

	}

 效果图:



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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值