Windows.Devices.WiFiDirect.Services Espacio de nombres

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

Consulte también