2012-09-21 1 views
1

아래의 코드를 사용하여 어떤 사용자에게도 친구 요청을 보내지 만 연결된 사용자를 명단에서 찾을 수는 없습니다.android smack subscribe user not working

이제 로스터 목록에서 새로운 친구를 어떻게 식별 할 수 있는지 알고 싶습니다.

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. 가 존재 유형을 사용하여 친구 요청을 전송하는 존재 형식이를 수신
    2. 을 보내 가입 존재하는 패킷을 구독하면 이 구독되고 패킷이 다시 전송됩니다.

    서버의 명부 명부는 모두 기부 유형에 의해 둘 다로 즉시 새롭게하고 명부 기입은 아닙니다. 또한, 명단 구독 모드는 수동으로 설정되며 또한 PacketListener가 첨부되어 있습니다.

    이 문제에 대한 해결책을 제공해 주시겠습니까? 큰 도움이 될 것입니다.

    감사와 안부, 베이 데히

  • +0

    고마워 베이 데히는 ... – hharry

    +0

    이 방법은 노력하고 있지만 시간이 나는 선수 명단을 업데이트지고 있지 않다. 또한 모든 유형의 알림을 식별하기 위해 PacketLister를 사용하고 있습니다. 이 문장에 대해 구체적으로 말씀해 주시겠습니까? 또한 PacketListener가 첨부되어 있습니다 ... 패킷 청취자를 구독하고 구독 할 수있는 방법 – hharry

    +0

    그건 내 질문이기도합니다. Packet Listener를 사용하여 업데이트 된 명단 목록을 얻을 수 있습니까? –