2013-03-08 5 views
7

하나의 기기에 WifiP2p Bonjour 서비스를 브로드 캐스트하고 두 번째 기기에서 검색하고 연결하는 간단한 Android 애플리케이션을 구현하려고합니다. 나는 거의 튜토리얼 here을 따라 갔다. Android Wifi 직접 서비스 검색

나는 유효한 Channel 오브젝트하는 DnsSdServiceResponseListenerDnsSdTxtRecordListener를 가지고 있고,이 호출을 통해 그들을 설정 :

mManager.setDnsSdResponseListeners(channel, servListener, txtListener); 

지금부터는 그냥 디버깅 정보를 뱉어 모두 청취자가 진짜 간단하게 할 수 있습니다.

문제는 내 DnsSdServiceResponseListener가 호출되지 것입니다,하지만 DnsSdTxtRecordListener을 호출되는 않는 모든 인수가 합법적 모습에 통과했다. 어떻게 호출 할 수 있지만 다른 호출 할 수 있습니까?

두 개의 실제 장치를 사용하여 테스트 중이며 둘 다 Android 4.2.2를 실행 중입니다.

감사합니다.

답변

10

마지막으로 알아 냈습니다. 서비스 요청을 만들기 mServiceInfo = WifiP2pDnsSdServiceInfo.newInstance(Consts.SERVICE_INSTANCE, Consts.SERVICE_REG_TYPE, record);

: 서비스 요청의 인스턴스를 얻는 때, 나는 서비스를 등록

... 서비스 인스턴스 이름을 지정하고 서비스를 만들 때 사용되는 값과 일치하도록 입력 된 ... mServiceRequest = WifiP2pDnsSdServiceRequest.newInstance();

을 서비스 요청을 받고 모두 청취자가 현재 호출되는 경우

mServiceRequest = WifiP2pDnsSdServiceRequest.newInstance(Consts.SERVICE_INSTANCE, Consts.SERVICE_REG_TYPE); 나는 newInstance 메소드에 대한 인수를 제거 . 내 첫 번째 방법은 근처에 방송되는 다른 서비스를 걸러 낼 것 같아서 원래는 그 과부하를 선택했습니다.

+0

대단히 감사합니다. 너는 생명의 은인이야! –