我正在使用Smack库开发一个即时通讯应用程序,遇到了一些问题。
我想知道是否有可能通过用户名在服务器上检查用户的存在。我的应用程序需要检查系统联系人列表中的人是否在我的服务器上开设了账户,以及他们是否不在他们的朋友列表中。
到目前为止,我已经成功将系统联系人列表中的每个联系人添加到我的用户的服务器联系人列表中 - 即使他们之前没有账户 - 但这并不是我要寻找的。
以下是代码(Contact类似于Smack的RosterEntry的包装类):
public void addAllContactsIfExisting(Contact[] contactsAgenda) {
for (Contact contact: contactsAgenda) {
if (!isContactMyFriend(contact)) {
try {
// I'd like to check for account existence here, being contact.getJid() the username as it'd be in the server
conn.getRoster().createEntry(contact.getJid(), contact.getName(), null);
} catch (XMPPException e) {
e.printStackTrace();
}
}
}
}
如果有帮助的话,我目前正在使用Openfire作为服务器。