2013-09-02 16 views
6

Da Android 4.1 (in Scoperta del servizio Wi-Fi Direct) suppone supportare l'individuazione di servizi UPnP nativi.Rilevamento servizio UPnP nativo Android

Suppongo che sia stato sviluppato per Wi-Fi Direct, ma i metodi disponibili sembrano essere generici. Anche il metodo JavaDoc per i metodi indica che cerca tutti i servizi UPnP sulla rete e non solo gli slave/master Wi-Fi Direct.

Tuttavia, sto riuscendo a implementare in modo che esso funziona ... riesco a impostare tutti i requisiti e ottengo positivi onSuccess callback, ma ricevo nessun onUpnpServiceAvailable callback la notifica di servizi sulla rete. Ho 3 servizi su UPnP che posso scoprire usando la libreria di terze parti.

Qualcuno ha provato questa funzione?

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

risposta

2

Sì, ho provato, e penso che sia tutta una questione di WIFI_P2P_SERVICE - P2P significa - che significa PeerToPeer o "Wi-Fi Direct" o "Adhoc modalità WiFi". In altre parole, non funzionerà quando ci si trova in una normale situazione WiFi con una modalità Punto di accesso/stazione.

Non credo che Android abbia un modo nativo per ascoltare UPnP/SSdP a livello di sistema operativo tranne in questa situazione di "Wi-Fi Direct".

Se qualcun altro vuole entrare, per favore!