я создаю XMPP клиента на Android-чат с сервером asmack library и Openfire.Получение Наличие отсутствует, состояние нуль все реестра
Я хочу получить список всех реестров из списка своих списков и отобразить все онлайн-реестры, но когда я проверяю наличие реестров, он дает мне недоступный для всех список, а статус - null.
Ниже мой код, как я создаю список и проверяю наличие?
установки Присутствие
Presence presence = new Presence(Presence.Type.available);
presence.setStatus("I’m available");
connection.sendPacket(presence);
Получить Roster список и проверить на наличие
Collection<RosterEntry> entries = roster.getEntries();
Log.e("Roster Entries","Roster Entries"+entries);
//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();
int state = retrieveState_mode (entryPresence.getMode() ,entryPresence.isAvailable());
Log.e("Presence Status","Presence status "+entryPresence.toString()+" type "+userType+" mode "+mode+" status "+status+" state "+state);
}
retriveState_mode()
public static int retrieveState_mode(Presence.Mode userMode, boolean isOnline) {
int userState = 0;
/** 0 for offline, 1 for online, 2 for away,3 for busy*/
if(userMode == Presence.Mode.dnd) {
userState = 3;
} else if (userMode == Presence.Mode.away || userMode == Presence.Mode.xa) {
userState = 2;
} else if (isOnline) {
userState = 1;
}
return userState;
}
В журнале я получаю это:
Roster Entries﹕ Roster Entries[tusha: tusha, tushar: tushar]
Presence status unavailable type unavailable mode null status null state 0
Presence status unavailable type unavailable mode null status null state 0