2013-09-02 22 views
6

Od Android 4.1 (w ramach wykrywania usług Wi-Fi Direct) ma obsługiwać wyszukiwanie rodzimych usług UPnP.Wykrywanie oryginalnego serwisu UPnP dla systemu Android

Przypuszczam, że został opracowany dla Wi-Fi Direct, ale dostępne metody wydają się być ogólne. Nawet JavaDoc dla metod wspomina, że ​​wyszukuje wszystkie usługi UPnP w sieci, a nie tylko WiFi Direct slaves/masters.

Jestem jednak w przypadku braku jego realizacji tak, że działa ... udaje mi się skonfigurować wszystkie wymagania i uzyskać pozytywne onSuccess wywołania zwrotne, ale nie otrzymują onUpnpServiceAvailable callbacks powiadamiania o usługach w sieci. Mam 3 usługi na UPnP, które mogę odkryć przy użyciu biblioteki innej firmy.

Czy ktoś próbował tej funkcji?

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) { 
     } 
    }); 

Odpowiedz

2

Tak, próbowałem go i myślę, że to wszystko o WIFI_P2P_SERVICE - co oznacza, P2P - czyli peer-to-peer lub "Wi-Fi Direct" lub "Adhoc Wifi Mode". Innymi słowy, nie będzie działać, gdy jesteś w normalnej sytuacji WiFi w trybie Access Point/stacji.

Nie sądzę, że Android ma jakiś natywny sposób słuchania UPnP/SSdP na poziomie systemu operacyjnego, z wyjątkiem sytuacji "Wi-Fi Direct".

Jeśli ktoś chce dzwonić, proszę!

Powiązane problemy