Windows.Devices.WiFiDirect.Services Espace de noms
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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);
}
}
}
}