Windows.Devices.WiFiDirect.Services Espacio de nombres
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Importante
El Windows. El espacio de nombres Devices.WiFiDirect.Services está en desuso.
Proporciona compatibilidad para implementar sus propios Wi-Fi Direct Services.
Wi-Fi Direct es una tecnología que permite que dos dispositivos se conecten directamente entre sí mediante Wi-Fi, sin necesidad de unir una red existente a través de un punto de acceso. Wi-Fi Direct Services son la forma en que un dispositivo (un anunciante de servicios) ofrece funcionalidades a otro dispositivo (un buscador de servicios) a través de una conexión directa de Wi-Fi. Un solicitante hace uso de un servicio anunciado estableciendo una sesión. Un dispositivo determinado puede anunciar varios servicios y también buscar varios servicios. Los roles Buscador y Anunciante se definen con respecto a cómo interactúan los dispositivos en una sesión determinada.
Aunque la especificación de Wi-Fi Direct Services define varios servicios estándar, esta API solo admite el servicio Enable . No admite la funcionalidad Enviar, Reproducir, Imprimir o Mostrar .
Clases
| Nombre | Description |
|---|---|
| WiFiDirectService |
Importante El Windows. El espacio de nombres Devices.WiFiDirect.Services está en desuso. Representa un servicio Wi-Fi Direct. El código usa esta clase en un dispositivo que busca usar un servicio directo de Wi-Fi para establecer una sesión de servicio directo Wi-Fi con el proveedor de servicios. |
| WiFiDirectServiceAdvertiser |
Deprecated. Representa un anunciante de servicios. El código usa esta clase en un dispositivo que anuncia Wi-Fi Direct Services para anunciar el servicio. |
| WiFiDirectServiceAutoAcceptSessionConnectedEventArgs |
Deprecated. Se devuelve cuando se genera un evento WiFiDirectServiceAdvertiser.AutoAcceptSessionConnected . |
| WiFiDirectServiceProvisioningInfo |
Deprecated. Contiene información de aprovisionamiento sobre un servicio directo de Wi-Fi. |
| WiFiDirectServiceRemotePortAddedEventArgs |
Deprecated. Se devuelve cuando se genera un evento WiFiDirectServiceSession.RemotePortAdded . El controlador de eventos debe usar esta información para establecer nuevas conexiones de socket al nuevo puerto. |
| WiFiDirectServiceSession |
Deprecated. Representa una sesión de Wi-Fi Direct Services (WFDS). |
| WiFiDirectServiceSessionDeferredEventArgs |
Deprecated. Se devuelve cuando se genera un evento WiFiDirectService.SessionDeferred . |
| WiFiDirectServiceSessionRequest |
Deprecated. Describe una solicitud de sesión de servicio directo Wi-Fi. |
| WiFiDirectServiceSessionRequestedEventArgs |
Deprecated. Se devuelve cuando se genera un evento WiFiDirectServiceAdvertiser.SessionRequested . |
Enumeraciones
| Nombre | Description |
|---|---|
| WiFiDirectServiceAdvertisementStatus |
Deprecated. Valores usados para WiFiDirectServiceAdvertiser.AdvertisementStatus. |
| WiFiDirectServiceConfigurationMethod |
Deprecated. Valores que describen cómo se realiza la configuración del servicio cuando se establece una sesión. Normalmente, no se requiere ninguna entrada o un dispositivo de la sesión muestra un PIN y el otro dispositivo requiere que se escriba el PIN. |
| WiFiDirectServiceError |
Deprecated. Valores usados para la propiedad WiFiDirectServiceAdvertiser.ServiceError . |
| WiFiDirectServiceIPProtocol |
Deprecated. Define constantes que especifican el protocolo IP del nuevo puerto cuando se genera un evento WiFiDirectServiceSession.RemotePortAdded . |
| WiFiDirectServiceSessionErrorStatus |
Deprecated. Valores usados en la propiedad WiFiDirectServiceSession.ErrorStatus . |
| WiFiDirectServiceSessionStatus |
Deprecated. Valores usados para describir el estado de una sesión de servicio directo de Wi-Fi. |
| WiFiDirectServiceStatus |
Deprecated. Valores usados para describir el estado del servicio. |
Comentarios
Establecer el propietario del grupo (GO)
Es posible que quiera poder ejercer un control preciso sobre cuáles de los miembros de un grupo punto a punto (P2P) es el propietario del grupo (GO). El código debe usar la propiedad WiFiDirectAdvertiser.PreferGroupOwnerMode para especificar que un anunciante determinado quiere ser el GO. Sin embargo, si dos dispositivos se han emparejado previamente a través de Wi-Fi Direct, los Wi-Fi roles directos en el perfil guardado de ese emparejamiento invalidan la preferencia especificada del anunciante. Para garantizar que un dispositivo determinado en un emparejamiento P2P será go, primero debe eliminar los datos de emparejamiento existentes, mediante los métodos proporcionados por el Windows. Devices.Enumeration espacio de nombres.
Tenga en cuenta que un perfil de emparejamiento empareja dos direcciones MAC, por lo que no se aplican dos dispositivos a todas las aplicaciones que usan Wi-Fi Direct entre esos dos dispositivos. La aplicación nunca debe suponer que existe un perfil de emparejamiento o que no ha cambiado por otra aplicación, incluso si se ha emparejado con un dispositivo en el pasado. Debe obtener información de perfil actual del perfil actual en lugar de almacenar la información del perfil y suponiendo que sigue siendo cierta en una fecha posterior. Es posible que otra aplicación haya cambiado el perfil de emparejamiento provisionalmente.
El código siguiente busca cualquier perfil de emparejamiento directo Wi-Fi entre el dispositivo local y otro dispositivo y elimina los dos dispositivos. Después de que este código haya desapareado correctamente los dos dispositivos, el emparejamiento posterior obedecerá el valor WiFiDirectAdvertiser.PreferGroupOwnerMode activo en el momento del emparejamiento.
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);
}
}
}
}