2013-09-02 12 views
6

Android 4.1'dan (Wi-Fi Direct hizmeti bulma altında), yerel UPnP hizmet keşfini desteklemesi gerekir.Android yerel UPnP hizmeti bulma

Wi-Fi Direct için geliştirilmiş olduğunu varsayalım, ancak mevcut yöntemler genel olarak görünüyor. Yöntemler için JavaDoc bile ağ üzerindeki tüm UPnP servislerini ve yalnızca WiFi Doğrudan slave/master'leri aramayı belirtmez.

Bununla birlikte, çalışabilmesi için onu uygulayamıyorum ... Tüm gereksinimleri ayarlamayı başarabilirim ve onSuccess pozitif geri dönüşler alırım, ancak ağdaki hizmetleri bildiren hiçbir onUpnpServiceAvailable geri bildirimi almıyorum. UPnP'de 3. parti kütüphanesi kullanarak keşfedebileceğim 3 hizmetim var.

Bu özelliği deneyen var mı?

final Channel mChannel; 
    final WifiP2pManager mManager; 
    WifiP2pServiceRequest mRequester; 

    mManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE); 
    mChannel = mManager.initialize(this, getMainLooper(), new ChannelListener() { 

     public void onChannelDisconnected() { 
      Log.i("CI", "Channel detected!"); 

     } 
    }); 
    mManager.setUpnpServiceResponseListener(mChannel, new UpnpServiceResponseListener() { 

     public void onUpnpServiceAvailable(List<String> arg0, WifiP2pDevice arg1) { 
      Log.i("sd", "Found device!!");   
     } 

    }); 
    mRequester = WifiP2pUpnpServiceRequest.newInstance(); 

    mManager.addServiceRequest(mChannel, mRequester, new ActionListener() { 

     public void onSuccess() { 

      Log.i("d", "AddServiceRequest success!"); 

      mManager.discoverServices(mChannel, new ActionListener() { 

       public void onSuccess() { 
        Log.i("d", "DiscoverServices success!"); 
       } 

       public void onFailure(int reason) { 
       } 
      }); 

     } 

     public void onFailure(int reason) { 
     } 
    }); 

cevap

2

Evet, bunu denedim ve bunu WIFI_P2P_SERVICE hakkında tüm düşünüyorum - yani P2P - PeerToPeer veya "Kablosuz Doğrudan" veya "Tasarsız Wifi Modu" anlamına gelir. Diğer bir deyişle, Erişim Noktası/istasyon modu ile normal bir WiFi durumundayken çalışmaz.

Android'in "Wi-Fi Direct" durumu dışında, işletim sisteminde UPnP/SSdP'yi dinlemenin doğal bir yolu olduğunu sanmıyorum.

Başkası yapmak isteyen biri varsa, lütfen yapın!