2013-03-08 20 views
7

Tek bir cihazda bir WifiP2p bonjour servisini yayınlayan ve ikinci bir cihazı bulup ona bağlayan basit bir android uygulaması uygulamaya çalışıyorum. Öğreticiyi çok takip ettim here. Android Wifi Direct Servis Discovery

Ben geçerli Channel nesne, bir DnsSdServiceResponseListener ve DnsSdTxtRecordListener var ve bu çağrı yoluyla bunları ayarlayın:

mManager.setDnsSdResponseListeners(channel, servListener, txtListener); 

Şu an itibariyle sadece bazı hata ayıklama bilgi tükürmek hem dinleyiciler gerçek basit tutmak için.

sorun benim DnsSdServiceResponseListener asla denir yani, ama DnsSdTxtRecordListener denilen olsun bulunmaz ve tüm argümanları okunaklı bir görünüm içinde geçti. Biri nasıl aranabilir ama diğeri değil?

Her ikisi de android 4.2.2 çalıştıran iki gerçek aygıt kullanarak test ediyorum.

Teşekkürler!

cevap

10

Sonunda bunu anladım .. tür. hizmet isteği oluşturma mServiceInfo = WifiP2pDnsSdServiceInfo.newInstance(Consts.SERVICE_INSTANCE, Consts.SERVICE_REG_TYPE, record);

: Bir hizmet isteği bir örneğini alırken, ben hizmet kaydedilmesi

... servis örnek adını belirterek ve hizmet oluştururken kullanılan değerleri eşleştirmek için yazın edildi ... mServiceRequest = WifiP2pDnsSdServiceRequest.newInstance();

hizmet isteği alma ve her iki dinleyici şimdi çağrıldığını zaman

mServiceRequest = WifiP2pDnsSdServiceRequest.newInstance(Consts.SERVICE_INSTANCE, Consts.SERVICE_REG_TYPE); Ben newInstance yönteme argüman kaldırıldı . İlk yöntemimin yakınlarda yayınlanmakta olan diğer hizmetleri filtreleyeceği görülüyor, bu yüzden bu aşırı yüklemeyi tercih ettim.

+0

Çok teşekkür ederim adamım. Sen bir hayat kurtarıcısın! –