如何在xmpp中获取用户的所有组(使用smack)

时间:2015-02-03 13:41:34

标签: android xmpp smack

我想从我的联系人处获取他们所属的群组。我的意思是,我将会有一个联系人列表,当我点击每个联系人时,我会在他们的群组中显示新列表:

我想要的例子:

联系人

  • UserA(onClick)
  • 用户B
  • 用户C
  • UserD

UserA Groups

  • 组别1
  • 组2
  • Grpup3

可以获得所有用户组,而不仅仅是“共享”?

该项目使用Smack库,并获取我正在做的联系人列表:(在实现适配器之前测试结果......等等)

StringBuilder builder = new StringBuilder();
for(RosterEntry entry : entries)
{

    builder.append(entry);
    builder.append("\n");
    Collection<RosterGroup> rGroup = entry.getGroups();
    builder.append("\t"+rGroup.toString());
    builder.append("\n");

}
Log.d("TEST", builder.toString());

获得:

    02-03 14:31:28.421: D/TEST(22476): Luis : luis@domain.com [GROUPA]
02-03 14:31:28.421: D/TEST(22476):  [org.jivesoftware.smack.RosterGroup@36a55f6]
02-03 14:31:28.421: D/TEST(22476): Christopher : christopher@domain.com [GROUPA]
02-03 14:31:28.421: D/TEST(22476):  [org.jivesoftware.smack.RosterGroup@36a55f6]
02-03 14:31:28.421: D/TEST(22476): Diego : diegom@domain.com [GROUPA]
02-03 14:31:28.421: D/TEST(22476):  [org.jivesoftware.smack.RosterGroup@36a55f6]
02-03 14:31:28.421: D/TEST(22476): Fabio : fabio@domain.com [GROUPA]
02-03 14:31:28.421: D/TEST(22476):  [org.jivesoftware.smack.RosterGroup@36a55f6]
02-03 14:31:28.421: D/TEST(22476): testopen: testopen@domain.com [GROUPA]
02-03 14:31:28.421: D/TEST(22476):  [org.jivesoftware.smack.RosterGroup@36a55f6]
02-03 14:31:28.421: D/TEST(22476): Diana: dianap@domain.com [GROUPA]
02-03 14:31:28.421: D/TEST(22476):  [org.jivesoftware.smack.RosterGroup@36a55f6]
02-03 14:31:28.421: D/TEST(22476): Prova Prova: prova@domain.com [GROUPA]
02-03 14:31:28.421: D/TEST(22476):  [org.jivesoftware.smack.RosterGroup@36a55f6]
02-03 14:31:28.421: D/TEST(22476): Jordi : jordic@domain.com [GROUPA]
02-03 14:31:28.421: D/TEST(22476):  [org.jivesoftware.smack.RosterGroup@36a55f6]
02-03 14:31:28.421: D/TEST(22476): Rubén : rubenr@domain.com [GROUPA]
02-03 14:31:28.421: D/TEST(22476):  [org.jivesoftware.smack.RosterGroup@36a55f6]
02-03 14:31:28.421: D/TEST(22476): Mikel : mikel@domain.com [GROUPA]
02-03 14:31:28.421: D/TEST(22476):  [org.jivesoftware.smack.RosterGroup@36a55f6]
02-03 14:31:28.421: D/TEST(22476): melissak@domain.com: melissak@domain.com [GROUPA]
02-03 14:31:28.421: D/TEST(22476):  [org.jivesoftware.smack.RosterGroup@36a55f6]

我知道大多数用户都在一组以上,但我只能看到[GROUPA]但我不知道如何获得其他组。

我试图查看包含[org.jivesoftware.smack.RosterGroup@36a55f6]的内容,但我唯一能做的就是获得相同的名称,而不是联系人的组

有可能得到它吗?怎么样?

提前致谢

1 个答案:

答案 0 :(得分:1)

如果您使用Openfire服务器,请选中管理控制台上的复选框。

用户/群组&gt;群组&gt; GroupB(点击)(在你的情况下)

在联系人列表共享框中,

检查&#34;启用联系人列表组共享&#34;

也许你可以看到其他组名。