[英]Issue in getting friend request using smack android in offline state
我在开发Android中的聊天应用程序时使用了smack api。 我在使好友请求处于脱机状态时遇到问题。 通过使用以下代码,我收到了好友请求。
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;
}
});
用户在线时,这可以正常工作。 但是,假设用户离线时,另一个用户向该用户发送了好友请求。 当用户上线时,我无法获得好友请求,因为未调用侦听器。 需要调用侦听器,以获取在脱机状态期间获得的所有伙伴请求。
请帮忙。
您的代码很好。 这也发生在我身上。 好吧,实际的问题是您已经在收到请求之后注册了侦听器。
登录用户之前,请尝试注册侦听器,即使您处于脱机状态,您也会看到已收到请求。
这实际上可以解决问题。 试试这个,如果您仍然遇到任何问题...请详细说明您的情况。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.