Compartilhar via


Windows.Devices.WiFiDirect Namespace

Contém classes que dão suporte à conexão com dispositivos Wi-Fi Direct associados e pontos de extremidade associados para computadores, tablets e telefones.

Classes

WiFiDirectAdvertisement

Representa um anúncio Wi-Fi Direct e permite que o aplicativo controle o estado de escuta e os elementos de informações personalizadas no anúncio.

WiFiDirectAdvertisementPublisher

Um objeto para publicar Wi-Fi anúncios diretos.

WiFiDirectAdvertisementPublisherStatusChangedEventArgs

Fornece dados para um evento StatusChanged em um WiFiDirectAdvertisementPublisher.

WiFiDirectConnectionListener

Classe usada para escutar solicitações de conexão direta Wi-Fi de entrada.

WiFiDirectConnectionParameters

Usado por um aplicativo para especificar os parâmetros de conexão para uma Wi-Fi operação de conexão/emparelhamento direto.

Os aplicativos de exemplo que usam essa classe incluem o exemplo de Wi-Fi Direct.

WiFiDirectConnectionRequest

Uma Wi-Fi solicitação de conexão direta recebida por um WiFiDirectConnectionListener.

WiFiDirectConnectionRequestedEventArgs

Fornece dados para um evento ConnectionRequested em um WiFiDirectConnectionListener.

WiFiDirectDevice

Gerencia conexões com dispositivos Wi-Fi Direct associados.

WiFiDirectInformationElement

Representa elementos de informações em um pacote Wi-Fi Direct.

WiFiDirectLegacySettings

Configurações que regem o modo "herdado" (conexões não Wi-Fi Direct com o ponto de acesso que está sendo anunciado.)

Enumerações

WiFiDirectAdvertisementListenStateDiscoverability

Especifica se o dispositivo Wi-Fi Direct está escutando e detectável.

WiFiDirectAdvertisementPublisherStatus

Representa os possíveis estados do WiFiDirectAdvertisementPublisher.

WiFiDirectConfigurationMethod

Especifica um método de configuração Wi-Fi Direct. A configuração é como um usuário informa a uma parte de Wi-Fi equipamento Direto para se conectar a outra parte do equipamento Wi-Fi Direct.

WiFiDirectConnectionStatus

Descreve o status de conexão de um objeto WiFiDirectDevice.

WiFiDirectDeviceSelectorType

Especifica o tipo de seletor de dispositivo para Wi-Fi Direct.

WiFiDirectError

Especifica alguns casos comuns de erro Wi-Fi Direct.

WiFiDirectPairingProcedure

Especifica um procedimento de emparelhamento direto.

Exemplos

Windows.Devices.WiFiDirect.WiFiDirectDevice wfdDevice;

private async System.Threading.Tasks.Task<String> Connect(string deviceId)
{
    string result = ""; 

    try
    {
        // No device ID specified.
        if (String.IsNullOrEmpty(deviceId)) { return "Please specify a Wi-Fi Direct device ID."; }

        // Connect to the selected Wi-Fi Direct device.
        wfdDevice = await Windows.Devices.WiFiDirect.WiFiDirectDevice.FromIdAsync(deviceId);

        if (wfdDevice == null)
        {
            result = "Connection to " + deviceId + " failed.";
        }

        // Register for connection status change notification.
        wfdDevice.ConnectionStatusChanged += new TypedEventHandler<Windows.Devices.WiFiDirect.WiFiDirectDevice, object>(OnConnectionChanged);

        // Get the EndpointPair information.
        var EndpointPairCollection = wfdDevice.GetConnectionEndpointPairs();

        if (EndpointPairCollection.Count > 0)
        {
            var endpointPair = EndpointPairCollection[0];
            result = "Local IP address " + endpointPair.LocalHostName.ToString() + 
                " connected to remote IP address " + endpointPair.RemoteHostName.ToString();
        }
        else
        {
           result = "Connection to " + deviceId + " failed.";
        }
    }
    catch (Exception err)
    {
        // Handle error.
        result = "Error occurred: " + err.Message;
    }

    return result;
}

private void OnConnectionChanged(object sender, object arg)
{
    Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus status = 
        (Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus)arg;

    if (status == Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus.Connected)
    {
        // Connection successful.
    }
    else
    {
        // Disconnected.
        Disconnect();
    }
}

private void Disconnect()
{
    if (wfdDevice != null) 
    {
        wfdDevice.Dispose(); 
    }
}

Comentários

Você pode usar a classe WiFiDirectDevice para estabelecer uma conexão de soquete com outros dispositivos que têm um dispositivo compatível com Wi-Fi Direct (WFD). Você pode chamar o método GetDeviceSelector para obter o identificador do dispositivo para um dispositivo Wi-Fi Direct. Depois de fazer referência a um WiFiDirectDevice no computador, você pode chamar o método GetConnectionEndpointPairs para obter um objeto EndpointPair e estabelecer uma conexão de soquete usando classes no namespace Windows.Networking.Sockets .

Você pode adicionar um manipulador para o evento ConnectionStatusChanged a ser notificado quando a conexão tiver sido estabelecida ou desconectada.

Somente um aplicativo pode ser conectado a um dispositivo Wi-Fi Direct por vez.

Você deve habilitar a funcionalidade proximidade para se comunicar com dispositivos Wi-Fi Direct.

Confira também