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

Java 如何在smack中获取当前用户名,java,android,xmpp,openfire,smack,Java,Android,Xmpp,Openfire,Smack,我已经从openfire管理页面创建了一个用户。我已输入用户名、姓名、电子邮件和密码 我正在用Android编写一个客户端。如何获取当前用户的名称?我试过: 1 connection.getuser-它返回:peter@www.abc.com/扑通 2 Get self vcard-它不返回任何与名称相关的内容 我可以通过RosterEntry.getName获取其他用户的名称。但是如何获取当前用户的名称呢 另外,是否可以获取当前用户的状态?与presence.getStatus类似,您可以使用

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

我正在用Android编写一个客户端。如何获取当前用户的名称?我试过: 1 connection.getuser-它返回:peter@www.abc.com/扑通 2 Get self vcard-它不返回任何与名称相关的内容

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


另外,是否可以获取当前用户的状态?与presence.getStatus类似,您可以使用AccountManager通过使用getAccountAttribute获取当前用户的名称,然后指定该属性的名称。在本例中,它是名称。下面是简单打印当前用户名称的代码

System.out.println("name = " + connection.getAccountManager().getAccountAttribute("name"));
关于第二个问题,您当然可以通过使用lotster.getPresence了解其他用户在您的花名册中的存在。下面是一个简单的循环来说明此方法的使用

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

您可以使用AccountManager通过使用getAccountAttribute获取当前用户的名称,然后指定属性的名称。在本例中,它是名称。下面是简单打印当前用户名称的代码

System.out.println("name = " + connection.getAccountManager().getAccountAttribute("name"));
关于第二个问题,您当然可以通过使用lotster.getPresence了解其他用户在您的花名册中的存在。下面是一个简单的循环来说明此方法的使用

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

谢谢,这就是我想做的。另外,我想获得当前用户的状态,而不是“forRosterEntry r:entries”中的用户。有可能找到它吗?现在,由于Smack中的更改,而不是连接。getAccountManager应该使用AccountManager.GetInstanceConnection谢谢,这就是我要做的。另外,我要获取当前用户的状态,而不是“forRosterEntry r:entries”中的用户。有可能找到它吗?现在,由于Smack中的更改,应该使用AccountManager.getInstanceconnection而不是connection.getAccountManager