【发布时间】:2014-06-02 10:10:56
【问题描述】:
我正在使用 smack api 在 android 中开发聊天应用程序。我在离线状态下获取好友请求时遇到问题。我正在使用以下代码收到好友请求。
LoginScreen.connection.addPacketListener(new PacketListener() {
public void processPacket(Packet packet) {
final Presence newPresence = (Presence) packet;
final Presence.Type presenceType = newPresence.getType();
final String fromId = newPresence.getFrom();
final String toId = newPresence.getTo();
final RosterEntry newEntry = roster.getEntry(fromId);
final String name = fromId.substring(0, fromId.indexOf("@"));
if (presenceType == Presence.Type.subscribed) {
Log.i("test-chat", "#####SUBSCRIBED#########");
}
if (presenceType == Presence.Type.subscribe) {
//adding buddy request to local DB
}
}
}, new PacketFilter() {
public boolean accept(Packet packet) {
if (packet instanceof Presence) {
Presence presence = (Presence) packet;
if (presence.getType().equals(Presence.Type.subscribed)
|| presence.getType().equals(Presence.Type.subscribe)
|| presence.getType().equals(Presence.Type.unsubscribed)
|| presence.getType().equals(Presence.Type.unsubscribe)
|| presence.getType().equals(Presence.Type.available)
|| presence.getType().equals(Presence.Type.unavailable)) {
return true;
}
}
return false;
}
});
当用户在线时,这可以正常工作。但是假设当用户离线时,另一个用户向该用户发送了好友请求。当用户上线时,我无法获得好友请求,因为没有调用监听器。需要调用监听器,以获取离线状态下获得的所有好友请求。
请帮忙。
【问题讨论】:
-
如果您认为您的问题已解决,那么您必须按照 nutz 的要求关闭问题。