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

我正在用Android编写客户端。如何获得当前用户的名称?我试过了:
(1)connection.getuser()-返回:[email protected]/smack
(2)获取自我vcard-它不返回与NAME相关的任何内容

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

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

最佳答案

您可以使用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());
    }

07-25 23:49