1

我正在使用下面的代码向任何用户发送好友请求,它工作正常,但我无法从名册列表中找到连接的用户。

现在我想知道如何在名册列表中识别新请求的朋友。

Roster roster = XMPPSmackConnection.getInstance().connection.getRoster();
roster.setSubscriptionMode(Roster.SubscriptionMode.manual);
try {
    if(!_userName.contains("@"))
        _userName=_userName+"@204.93.197.136";

    Presence response = new Presence(Presence.Type.subscribe);
    response.setTo(_userName);
    XMPPSmackConnection.getInstance().connection.sendPacket(response);

    //roster.createEntry(_userName, _nickName, my_friends[]);
    //addBuddy(_userName, _nickName, Friends);
} catch (Exception e) {
    _progDailog.dismiss();
    e.printStackTrace();
}
4

1 回答 1

4

我一直在尝试解决一个类似的问题,即名册列表在接受朋友的请求时没有更新。遵循的步骤:-

  1. 使用 Presence 类型作为订阅发送好友请求
  2. 在另一端,在接受朋友的请求时,发送一个订阅的出席信息类型
  3. 收到订阅的 Presence 数据包后,将发送回另一个订阅的数据包。

服务器的名册列表通过订阅类型立即更新为两者,但名册条目不是。此外,名册的订阅模式设置为手动,并且还附加了一个 PacketListener。

请您通过为这个问题提供解决方案来提供一些帮助吗?这会有很大帮助。

谢谢和问候, Vaidehi

于 2013-02-08T14:40:26.370 回答