Smackライブラリを使用してIMアプリケーションを開発していますが、いくつかの問題が発生しています。
サーバー内のユーザー名でユーザーの存在を確認できるかどうか知りたいのですが。私のアプリケーションは、システムの連絡先リストのユーザーが私のサーバーでアカウントを開いていて、友達リストに含まれていないかどうかを確認する必要があります。
これまでのところ、システムの連絡先リストにあるすべての連絡先を、サーバーのユーザーの連絡先リストに追加することができました。ユーザーが事前にアカウントを持っていなくても、それは私が探しているものではありません。
コードは次のとおりです(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を使用しています。