WiFiDirectDevice WiFiDirectDevice WiFiDirectDevice WiFiDirectDevice WiFiDirectDevice Class

Definition

Manages connections to associated Wi-Fi Direct devices.

public : sealed class WiFiDirectDevice : IWiFiDirectDevice, IClosable
struct winrt::Windows::Devices::WiFiDirect::WiFiDirectDevice : IWiFiDirectDevice, IClosable
public sealed class WiFiDirectDevice : IWiFiDirectDevice, IDisposable
Public NotInheritable Class WiFiDirectDevice Implements IWiFiDirectDevice, IDisposable
// This class does not provide a public constructor.
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)

Examples

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(); 
    }
}
var wfdDevice;

function connect(deviceId) {
    var result = ""; 

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

        // Connect to the selected Wi-Fi Direct device.
        Windows.Devices.WiFiDirect.WiFiDirectDevice.fromIdAsync(deviceId).then(
            function (wfdDeviceResult) {
                if (!wfdDeviceResult) {
                    result = "Connection to " + deviceId + " failed.";
                }

                wfdDevice = wfdDeviceResult;

                // Register for connection status change notification.
                wfdDevice.onconnectionstatuschanged = 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 (err) {
        // Handle error.
        result = "Error occurred: " + err.message;
    }

    return result;
}

function onConnectionChanged(status) {
    if (status == Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus.connected) {
        // Connection successful.
    }
    else {
        // Disconnected.
       disconnect();
    }
}

function disconnect() {
    if (wfdDevice) {
        wfdDevice.dispose(); 
    }
}

Remarks

You can use the WiFiDirectDevice class to establish a socket connection with other devices that have a Wi-Fi Direct (WFD) capable device. You can call the GetDeviceSelector method to get the device identifier for a Wi-Fi Direct device. Once you have a reference to a WiFiDirectDevice on your computer, you can call the GetConnectionEndpointPairs method to get an EndpointPair object and establish a socket connection using the Windows.Networking.Sockets API.

You can add a handler for the ConnectionStatusChanged event to be notified when the connection has been established or disconnected.

Only one app can be connected to a Wi-Fi Direct device at a time.

You must enable the Proximity capability to communicate with Wi-Fi Direct devices.

Properties

ConnectionStatus ConnectionStatus ConnectionStatus ConnectionStatus ConnectionStatus

Gets the connection status for the WiFi-Direct device.

DeviceId DeviceId DeviceId DeviceId DeviceId

Gets the DeviceInformation Id for the Wi-Fi Direct device.

Methods

Close() Close() Close() Close() Close()

Close the active Wi-Fi Direct device connection.

Dispose() Dispose() Dispose() Dispose() Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

FromIdAsync(String) FromIdAsync(String) FromIdAsync(String) FromIdAsync(String) FromIdAsync(String)

Creates an instance of the WiFiDirectDevice class for the specified device interface id.

FromIdAsync(String, WiFiDirectConnectionParameters) FromIdAsync(String, WiFiDirectConnectionParameters) FromIdAsync(String, WiFiDirectConnectionParameters) FromIdAsync(String, WiFiDirectConnectionParameters) FromIdAsync(String, WiFiDirectConnectionParameters)

Creates an instance of the WiFiDirectDevice class for the specified device interface id with specific connection parameters.

GetConnectionEndpointPairs() GetConnectionEndpointPairs() GetConnectionEndpointPairs() GetConnectionEndpointPairs() GetConnectionEndpointPairs()

Gets a collection of network addresses for the Wi-Fi Direct device as endpoint pairs.

GetDeviceSelector() GetDeviceSelector() GetDeviceSelector() GetDeviceSelector() GetDeviceSelector()

Returns the class selection string that you can use to enumerate Wi-Fi Direct devices.

GetDeviceSelector(WiFiDirectDeviceSelectorType) GetDeviceSelector(WiFiDirectDeviceSelectorType) GetDeviceSelector(WiFiDirectDeviceSelectorType) GetDeviceSelector(WiFiDirectDeviceSelectorType) GetDeviceSelector(WiFiDirectDeviceSelectorType)

Returns the class selection string that you can use to enumerate Wi-Fi Direct devices for a specific Wi-Fi Direct device selector type.

Events

ConnectionStatusChanged ConnectionStatusChanged ConnectionStatusChanged ConnectionStatusChanged ConnectionStatusChanged

Occurs when a Wi-Fi Direct device connection is connected or disconnected.

See Also