Windows.Devices.WiFiDirect.Services Spazio dei nomi

Importante

Windows. Lo spazio dei nomi Devices.WiFiDirect.Services è deprecato.

Fornisce supporto per l'implementazione di servizi diretti Wi-Fi.

Wi-Fi Direct è una tecnologia che consente a due dispositivi di connettersi direttamente l'uno all'altro tramite Wi-Fi, senza dover aggiungere una rete esistente tramite un punto di accesso. Wi-Fi Servizi diretti sono il modo in cui un dispositivo ( inserzionista di servizi) offre funzionalità a un altro dispositivo (un cercatore di servizi) su una connessione diretta Wi-Fi. Un cercatore usa un servizio pubblicizzato stabilendo una sessione. Un determinato dispositivo può annunciare più servizi e cercare anche più servizi. I ruoli Cercatori e Inserzionisti sono definiti in relazione al modo in cui i dispositivi interagiscono in una determinata sessione.

Mentre la specifica di Wi-Fi Direct Services definisce diversi servizi standard, questa API supporta solo il servizio Abilita . Non supporta la funzionalità Send, Play, Print o Display .

Classi

Nome Descrizione
WiFiDirectService

Importante

Windows. Lo spazio dei nomi Devices.WiFiDirect.Services è deprecato.

Rappresenta un servizio Wi-Fi Direct. Questa classe viene usata dal codice in un dispositivo che cerca di usare un servizio diretto Wi-Fi per stabilire una sessione di Wi-Fi Direct Service con il provider di servizi.

WiFiDirectServiceAdvertiser

Deprecated. Rappresenta un inserzionista di servizi. Questa classe viene usata dal codice in un dispositivo che annuncia Wi-Fi Servizi diretti per annunciare il servizio.

WiFiDirectServiceAutoAcceptSessionConnectedEventArgs

Deprecated. Restituito quando viene generato un evento WiFiDirectServiceAdvertiser.AutoAcceptSessionConnected .

WiFiDirectServiceProvisioningInfo

Deprecated. Contiene informazioni di provisioning su un servizio diretto Wi-Fi.

WiFiDirectServiceRemotePortAddedEventArgs

Deprecated. Restituito quando viene generato un evento WiFiDirectServiceSession.RemotePortAdded . Il gestore eventi deve usare queste informazioni per stabilire nuove connessioni socket alla nuova porta.

WiFiDirectServiceSession

Deprecated. Rappresenta una sessione di Wi-Fi Direct Services (WFDS).

WiFiDirectServiceSessionDeferredEventArgs

Deprecated. Restituito quando viene generato un evento WiFiDirectService.SessionDeferred .

WiFiDirectServiceSessionRequest

Deprecated. Descrive una richiesta di sessione Wi-Fi Direct Service.

WiFiDirectServiceSessionRequestedEventArgs

Deprecated. Restituito quando viene generato un evento WiFiDirectServiceAdvertiser.SessionRequested .

Enumerazioni

Nome Descrizione
WiFiDirectServiceAdvertisementStatus

Deprecated. Valori utilizzati per WiFiDirectServiceAdvertiser.AdvertisementStatus.

WiFiDirectServiceConfigurationMethod

Deprecated. Valori che descrivono come viene eseguita la configurazione del servizio quando viene stabilita una sessione. In genere, non è necessario alcun input o un dispositivo nella sessione visualizza un PIN e l'altro dispositivo richiede l'immissione del PIN.

WiFiDirectServiceError

Deprecated. Valori utilizzati per la proprietà WiFiDirectServiceAdvertiser.ServiceError .

WiFiDirectServiceIPProtocol

Deprecated. Definisce costanti che specificano il protocollo IP della nuova porta quando viene generato un evento WiFiDirectServiceSession.RemotePortAdded .

WiFiDirectServiceSessionErrorStatus

Deprecated. Valori utilizzati nella proprietà WiFiDirectServiceSession.ErrorStatus .

WiFiDirectServiceSessionStatus

Deprecated. Valori usati per descrivere lo stato di una sessione del servizio diretto di Wi-Fi.

WiFiDirectServiceStatus

Deprecated. Valori utilizzati per descrivere lo stato del servizio.

Commenti

Impostazione del proprietario del gruppo (GO)

Potrebbe essere necessario essere in grado di esercitare un controllo preciso su quale dei membri di un gruppo peer-to-peer (P2P) è il proprietario del gruppo (GO). Il codice deve usare la proprietà WiFiDirectAdvertiser.PreferGroupOwnerMode per specificare che un determinato inserzionista vuole essere go. Tuttavia, se due dispositivi sono stati abbinati in precedenza tramite Wi-Fi Direct, i ruoli diretti Wi-Fi nel profilo salvato da tale associazione sostituiscono la preferenza specificata dell'inserzionista. Per garantire che un determinato dispositivo in un'associazione P2P sia go, è prima necessario eliminare tutti i dati di associazione esistenti, usando i metodi forniti dal Windows. Spazio dei nomi Devices.Enumeration.

Si noti che un profilo di associazione associa due indirizzi MAC, quindi l'annullamento dell'associazione di due dispositivi si applica a tutte le app che usano Wi-Fi Direct tra questi due dispositivi. L'app non deve mai presupporre che esista un profilo di associazione o che non sia stata modificata da un'altra app, anche se è stata associata a un dispositivo in passato. È consigliabile ottenere informazioni correnti sul profilo dal profilo corrente anziché archiviare le informazioni sul profilo e presupponendo che sia ancora true in un secondo momento. Un'altra app potrebbe aver modificato il profilo di associazione nel frattempo.

Il codice seguente trova qualsiasi profilo di associazione diretta Wi-Fi tra il dispositivo locale e un altro dispositivo e annulla l'associazione dei due dispositivi. Dopo l'annullamento dell'associazione dei due dispositivi, l'associazione successiva obbedirà al valore WiFiDirectAdvertiser.PreferGroupOwnerMode attivo al momento dell'associazione.

using Windows.Devices.Enumeration;

private async void Unpair_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
    if (DiscoveredServices.Items.Count > 0)
    {
        DiscoveredDeviceWrapper service = 
            (DiscoveredDeviceWrapper)DiscoveredServices.Items[DiscoveredServices.SelectedIndex];

        String[] aepId = service.DeviceInfo.Id.Split('#');
        String deviceSelector = "System.Devices.DeviceInstanceId:=\"SWD\\WiFiDirect\\" + aepId[1] + "\"";

        // Check if device is paired
        DeviceInformationCollection pairedDeviceCollection = 
            await DeviceInformation.FindAllAsync(deviceSelector, null, DeviceInformationKind.DeviceInterface);

        if (pairedDeviceCollection.Count > 0)
        {
            try
            {
                DeviceInformation devInfo = pairedDeviceCollection[0];
                await devInfo.Pairing.UnpairAsync();
                MainPage.Current.NotifyUser("UnpairAsync succeeded", NotifyType.StatusMessage);
            }

            catch (Exception ex)
            {
                MainPage.Current.NotifyUser("UnpairAsync failed: " + ex.Message, NotifyType.ErrorMessage);
            }
        }
    }
}

Vedi anche