2016-10-23 2 views
0

내가 얼굴을 마주보고 openfire.The 문제를 사용하여 안드로이드 채팅 응용 프로그램을 만드는 오전 내가 가입 요청을 보내고 수락하는 방법을 알고 있지만 내가받은 경우 어떻게 알 수 있습니다 모든 구독 요청. 스탠자 리스너를 사용했지만 수신자가 가입 요청이 아닌 들어오는 채팅 메시지 만 듣고 있습니다. 다음은 내가 사전에 들어오는 가입 요청대로를 수신 할 수있는 방법,내가 어떻게 입을 열어 openfire 안드로이드에서 들어오는 가입 신청을들을 수

+0

이 사용자에게 구독을 요청하면 어떻게됩니까? 이 "Stanz listner"는 로그에 인쇄되지 않습니까? – Farhan

+0

StanzaTypeFilter는 반환 한 함수 'accept'를 구현합니다. – Farhan

+0

난 그냥 들어오는 구독을 듣고이 모듈을 사용하고 있습니다. 내가 잘못 했나요? 만약 내가 틀렸다면 스탠자 필터 대신에 무엇을 써야한다고 말할 수 있습니까? 미리 감사드립니다. –

답변

0

구독 요청은 Message 아니다 .. 좀 도와주세요 헤로인에 초보자입니다 내 코드

StanzaFilter filter=new StanzaTypeFilter(Message.class); 
     PacketCollector collector=connection.createPacketCollector(filter); 
     connection.addAsyncStanzaListener(new StanzaListener() { 
      @Override 
      public void processPacket(Stanza packet) throws SmackException.NotConnectedException { 
       Log.wtf("MA","Stanz listner"); 
      } 
     },filter); 

입니다. 대신 Presence입니다.

그래서, 당신은 아마 시도해야합니다 :

StanzaFilter filter = new StanzaTypeFilter(Presence.class);

참조 : RFC 3921 - Section 6 - Managing Subscriptions

0

이것은 내가 내 안드로이드 코드

StanzaFilter subscribefilter = PresenceTypeFilter.SUBSCRIBE; 
PresenceSubscribeListener subscribeListener = new PresenceSubscribeListener(context.getApplicationContext(), connection); 
connection.addSyncStanzaListener(subscribeListener, subscribefilter); 

에서 수행 한 방법이다 그리고이 연결 객체가있다 Android에서 장시간 실행되는 서비스에서 참조되었습니다. 이것은 응용 프로그램이 백그라운드 일 때 패킷을 수신 할 때 수신되는 존재 패킷을 계속 처리 할 수 ​​있도록 수행되었습니다.

P. 내 안드로이드 코드에서 매번 4.1.9를 사용하고 있습니다.

관련 문제