2013-03-08 18 views
7

Próbuję zaimplementować prostą aplikację na Androida, która nadaje usługę bonjour WifiP2p na jednym urządzeniu i ma drugie urządzenie do wykrycia i połączenia z nią. Podążałem za tutorialem here.Wykrywanie usługi Android Wifi Direct Service

mam ważny Channel przedmiotu, DnsSdServiceResponseListener i DnsSdTxtRecordListener i ustawić je za pośrednictwem tego połączenia:

mManager.setDnsSdResponseListeners(channel, servListener, txtListener); 

W tej chwili zarówno słuchacze tylko wypluć pewne informacje debugowania do keep it real proste.

Problemem jest to, że moja DnsSdServiceResponseListener nigdy nie nazywa, ale DnsSdTxtRecordListenerrobi się nazywa i wszystkie argumenty przekazywane w wyglądzie legit. Jak można się nazywać, ale nie innym?

Testuję przy użyciu dwóch rzeczywistych urządzeń, oba z systemem Android 4.2.2.

Dzięki!

Odpowiedz

10

W końcu wymyśliłem to .. rodzaj. Kiedy coraz instancję zgłoszenia serwisowego, byłem określając nazwę instancji usługi i wpisz pasujące wartości stosowanych przy tworzeniu serwisu ...

Rejestrowanie usługę: mServiceInfo = WifiP2pDnsSdServiceInfo.newInstance(Consts.SERVICE_INSTANCE, Consts.SERVICE_REG_TYPE, record);

Tworzenie zlecenia serwisowego: mServiceRequest = WifiP2pDnsSdServiceRequest.newInstance(Consts.SERVICE_INSTANCE, Consts.SERVICE_REG_TYPE);

usunąłem argumenty do metody newInstance gdy coraz żądanie usługi ... mServiceRequest = WifiP2pDnsSdServiceRequest.newInstance();

i oba detektory są nazywane teraz . Wygląda na to, że moja pierwsza metoda odfiltrowała inne usługi emitowane w pobliżu, dlatego początkowo zdecydowałem się na takie przeciążenie.

+0

Dziękuję bardzo człowieku. Jesteś ratownikiem! –

Powiązane problemy