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