0
私はquick blox sdkを使用してチャットし、オンラインユーザーを表示し、オンライン/オフライン状態を更新しています。すべてが正常に動作しますが、初めてログイン5xxxx7 QBIdの存在はログ下記のとおりに受信された上、Quick Blox SDKプレゼンスがオンラインで初めてオンラインで受信されない
D/SMACK: RECV (1): <presence xmlns="jabber:client" from="[email protected]/android_00000000-57d0-4ecf-ffff-ffffef05ac4a" to="[email protected]" id="bQzT2-9587"/>
09-30 16:38:19.944 20513-21578/com.FCK.provider D/NativeCrypto: ssl=0xd86e0d40 sslRead buf=0xd403af98 len=104,timeo=60000
しかし、私の存在のリスナーに何も記録されません:
rosterListener = new QBRosterListener() {
@Override
public void entriesDeleted(Collection<Integer> userIds) {
log("entriesDeleted: " + userIds);
}
@Override
public void entriesAdded(Collection<Integer> userIds) {
log("entriesAdded: " + userIds);
}
@Override
public void entriesUpdated(Collection<Integer> userIds) {
log("entriesUpdated: " + userIds);
}
@Override
public void presenceChanged(QBPresence presence) {
log("presenceChanged: " + presence);
EventBus.getDefault().post(presence);
if(chatServiceListener != null){
chatServiceListener.presenceChanged(presence);
}
// {type=online, user=5507990, status=null}
}
};
私はコードの下で、手動でプレゼンスを取得する場合でも、私は彼がオンラインであっても、オフラインとしてユーザーを取得し、私は彼と一緒にチャットすることができます。
QBPresence presence = сhatRoster.getPresence(userID);
if (presence == null) {
log("No user in your roster");
return;
}
if (presence.getType() == QBPresence.Type.online) {
log("User " + userID + " is online");
} else {
log("User " + userID + " is offline");
}