如何在smack中获取当前用户的名字

时间:2012-04-02 14:07:48

标签: java android xmpp openfire smack

我已经从openfire管理页面创建了一个用户。我输入了用户名,NAME,电子邮件,密码。

我正在Android中编写客户端。如何获取当前用户的NAME?我试过了: (1)connection.getuser() - 它返回:peter@www.abc.com/smack (2)获取自动vcard - 它不返回与NAME相关的任何内容

我可以通过RosterEntry.getName()获取其他用户的名称。但是如何获得当前用户的名字?

此外,是否可以获取当前用户的状态? (如presence.getStatus())

1 个答案:

答案 0 :(得分:4)

您可以使用getAccountAttribute通过AccountManager获取当前用户的名称,然后指定属性的名称。在这种情况下,它是名称“。这是简单打印当前用户名称的代码

System.out.println("name = " + connection.getAccountManager().getAccountAttribute("name"));

关于您的第二个问题,您当然可以通过使用roster.getPresence了解其他用户在您的名单中的存在。这是一个简单的循环来说明这种方法的使用

 for(RosterEntry r:entries) {
        Presence presence = roster.getPresence(r.getUser());
        System.out.println(presence.toXML());
    }