2015-02-04 3 views
0

Я пытаюсь внедрить приложение для Android-андроида с помощью XMPP (aSmack) .I проверить, что мой код верен, подходит для входа, registration.Now я пытаюсь получить всю информацию пользователя (offline/online/away/etc.) Я пытаюсь использовать Presence.But я не могу добиться успеха. Когда соединение xmpp в порядке и успех входа в систему, я вызываю Присутствие поКак получить все пользовательское состояние infromation (offline/online/away/etc.) By XMPP aSmack

if (connection != null && connection.isConnected()) { 
     Presence presence = new Presence(Presence.Type.available); 
     presence.setStatus("I’m available"); 
     connection.sendPacket(presence); 
     Log.w("type", "I’m available"); 
    } 

После вызова этой функции, то я стараюсь, чтобы получить всю информацию о пользователе код .My Roster являются:

Roster roster = connection.getRoster(); 
    // Get all rosters 
    Collection<RosterEntry> entries = roster.getEntries(); 
    Log.w("Size ", "are"+entries.size()); 
    // loop through 
    for (RosterEntry entry : entries) { 
     // example: get presence, type, mode, status 
     Presence entryPresence = roster.getPresence(entry.getUser()); 
     Presence.Type userType = entryPresence.getType(); 
     Presence.Mode mode = entryPresence.getMode(); 
     String status = entryPresence.getStatus(); 

     Log.w("mode ", "are"+mode); 
     Log.w("status ", "are"+status); 
     Log.w("mode ", "are"+entryPresence.isAvailable()); 
    } 

Но моя проблема, все время я получаю один размер записи, кто я. Без моего режима все время отображается (это значит, что я недоступен). Я не понимаю, в чем проблема. Мне нужна работа над конфигурацией сервера , again.or Мой код неправильный. Пожалуйста, помогите мне, как я могу решить эти две проблемы. Спасибо всем.

+0

Какую версию aSmack вы используете? – Flow

+0

Привет @ Flow благодаря вашему ответу. Используется asmack-android-8-0.8.10.jar. Любая проблема для использования этой версии.? – Prosanto

+0

Я не знаю, но 4.0.6 - это последняя стабильная версия aSmack. Возможно, вы захотите рассмотреть возможность обновления. – Flow

ответ

0

Вы можете получить весь список с сервера с помощью объекта соединения

Roster roster = mConnection.getRoster(); 

mConnection, где находится объект соединения XMPP. Вы также должны добавить слушателя списка к реестру.

Для получения дополнительной информации вы можете обратиться к this link.