XMPPConnection.addConnectionCreationListener(new ConnectionCreationListener() {
@Override
public void connectionCreated(Connection arg0) {
Log.i(TAG, "receive xmpp connection : " + arg0);
connection = arg0;
roster = arg0.getRoster();
Collection<RosterEntry> entries = roster.getEntries();
Presence presence;
Log.e(TAG, "user count" + entries.size());
for (RosterEntry entry : entries) {
presence = roster.getPresence(entry.getUser());
Log.i(TAG, "" + entry.getUser());
Log.i(TAG, "" + presence.getType().name());
Log.i(TAG, "" + presence.getStatus());
}
}
});
Так что в начале программы регистрации этого XMPPConnection слушателя, как правило, это займет несколько секунд, чтобы получить объект подключения. Но он будет работать только в том случае, если вы будете использовать creatEntry только в этом случае, когда петух увидит этих созданных пользователей.
Для записи с помощью создающего Roster использовать следующий код:
try {
rooster.createEntry("name", "user_id", null);
} catch (XMPPException e) {
e.printStackTrace();
}
я не использовал какую-либо группы, и с успехом видеть пользователь на втором устройстве.
Спасибо, butin, на котором я могу определить статус онлайн или офлайн, может убрать это? –
Я сделал тот же код, но каждый пользователь просто дает присутствие «недоступным», как это может быть, когда 4-5 уже доступны, но показывая мне, что все недоступны, может ли кто-нибудь помочь мне в этом? –
То же самое здесь. Я просто получаю статус недоступным:/ –