Partager via


Windows.Devices.WiFiDirect.Services Espace de noms

Prend en charge l’implémentation de vos propres Wi-Fi Direct Services.

Wi-Fi Direct est une technologie qui permet à deux appareils de se connecter directement l’un à l’autre à l’aide du Wi-Fi, sans avoir à joindre un réseau existant via un point d’accès. Wi-Fi Services directs sont la façon dont un appareil ( un annonceur de service) offre des fonctionnalités à un autre appareil (un chercheur de services) via une connexion directe Wi-Fi. Un demandeur utilise un service annoncé en établissant une session. Un appareil donné peut publier plusieurs services et rechercher plusieurs services. Les rôles Seeker et Advertiser sont définis en fonction de la façon dont les appareils interagissent dans une session particulière.

Bien que la spécification Wi-Fi Direct Services définisse plusieurs services standard, cette API prend uniquement en charge le service Enable . Il ne prend pas en charge les fonctionnalités d’envoi, de lecture, d’impression ou d’affichage .

Classes

WiFiDirectService

Représente un service direct Wi-Fi. Cette classe est utilisée par le code sur un appareil qui cherche à utiliser un service direct Wi-Fi pour établir une session de service direct Wi-Fi avec le fournisseur de services.

WiFiDirectServiceAdvertiser

Représente un annonceur de service. Cette classe est utilisée par le code sur un appareil qui publie Wi-Fi Direct Services, pour publier le service.

WiFiDirectServiceAutoAcceptSessionConnectedEventArgs

Retourné lorsqu’un événement WiFiDirectServiceAdvertiser.AutoAcceptSessionConnected est déclenché.

WiFiDirectServiceProvisioningInfo

Contient des informations d’approvisionnement sur un service direct Wi-Fi.

WiFiDirectServiceRemotePortAddedEventArgs

Retourné lorsqu’un événement WiFiDirectServiceSession.RemotePortAdded est déclenché. Votre gestionnaire d’événements doit utiliser ces informations pour établir de nouvelles connexions de socket au nouveau port.

WiFiDirectServiceSession

Représente une session Wi-Fi Direct Services (WFDS).

WiFiDirectServiceSessionDeferredEventArgs

Retourné lorsqu’un événement WiFiDirectService.SessionDeferred est déclenché.

WiFiDirectServiceSessionRequest

Décrit une demande de session de service direct Wi-Fi.

WiFiDirectServiceSessionRequestedEventArgs

Retourné lorsqu’un événement WiFiDirectServiceAdvertiser.SessionRequested est déclenché.

Énumérations

WiFiDirectServiceAdvertisementStatus

Valeurs utilisées pour WiFiDirectServiceAdvertiser.AdvertisementStatus.

WiFiDirectServiceConfigurationMethod

Valeurs décrivant comment la configuration du service est effectuée lors de l’établissement d’une session. En règle générale, soit aucune entrée n’est requise, soit un appareil de la session affiche un code confidentiel et l’autre appareil exige que le code confidentiel soit entré.

WiFiDirectServiceError

Valeurs utilisées pour la propriété WiFiDirectServiceAdvertiser.ServiceError .

WiFiDirectServiceIPProtocol

Définit des constantes qui spécifient le protocole IP du nouveau port lorsqu’un événement WiFiDirectServiceSession.RemotePortAdded est déclenché.

WiFiDirectServiceSessionErrorStatus

Valeurs utilisées dans la propriété WiFiDirectServiceSession.ErrorStatus .

WiFiDirectServiceSessionStatus

Valeurs utilisées pour décrire la status d’une session de service direct Wi-Fi.

WiFiDirectServiceStatus

Valeurs utilisées pour décrire le service status.

Remarques

Définition du propriétaire du groupe (GO)

Vous souhaiterez peut-être exercer un contrôle précis sur les membres d’un groupe P2P (Peer to Peer) qui est le propriétaire du groupe (GO). Votre code doit utiliser la propriété WiFiDirectAdvertiser.PreferGroupOwnerMode pour spécifier qu’un annonceur donné souhaite être le GO. Toutefois, si deux appareils ont été précédemment couplés via Wi-Fi Direct, les rôles directs Wi-Fi dans le profil enregistré à partir de ce jumelage remplacent la préférence spécifiée par l’annonceur. Pour garantir qu’un appareil donné dans un appairage P2P sera le GO, vous devez d’abord supprimer toutes les données de jumelage existantes, à l’aide des méthodes fournies par l’espace de noms Windows.Devices.Enumeration .

Notez qu’un profil de jumelage associe deux adresses MAC. La suppression de deux appareils s’applique donc à toutes les applications qui utilisent Wi-Fi direct entre ces deux appareils. Votre application ne doit jamais supposer qu’un profil de jumelage existe ou qu’il n’a pas été modifié par une autre application, même si elle a été associée à un appareil dans le passé. Vous devez obtenir les informations de profil actuelles à partir du profil actuel plutôt que de stocker les informations de profil et en supposant qu’elles sont toujours vraies à une date ultérieure. Une autre application a peut-être modifié le profil de jumelage entre-temps.

Le code suivant recherche n’importe quel Wi-Fi profil de jumelage direct entre l’appareil local et un autre appareil, et dissocie les deux appareils. Une fois que ce code a réussi à dissocier les deux appareils, le jumelage suivant obéit à la valeur WiFiDirectAdvertiser.PreferGroupOwnerMode active au moment de l’appairage.

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

Voir aussi