Windows.Devices.WiFiDirect Namespace
Contains classes that support connecting to associated Wi-Fi Direct devices and associated endpoints for PCs, tablets, and phones.
Classes
WiFiDirectAdvertisement |
Represents a Wi-Fi Direct advertisement and allows the app to control the listen state and custom information elements in the advertisement. |
WiFiDirectAdvertisementPublisher |
An object to publish Wi-Fi Direct advertisements. |
WiFiDirectAdvertisementPublisherStatusChangedEventArgs |
Provides data for a StatusChanged event on a WiFiDirectAdvertisementPublisher. |
WiFiDirectConnectionListener |
Class used to listen for incoming Wi-Fi Direct connection requests. |
WiFiDirectConnectionParameters |
Used by an app to specify the connection parameters for a Wi-Fi Direct connect/pairing operation. Sample applications that use this class include the Wi-Fi Direct sample. |
WiFiDirectConnectionRequest |
A Wi-Fi Direct connection request received by a WiFiDirectConnectionListener. |
WiFiDirectConnectionRequestedEventArgs |
Provides data for a ConnectionRequested event on a WiFiDirectConnectionListener. |
WiFiDirectDevice |
Manages connections to associated Wi-Fi Direct devices. |
WiFiDirectInformationElement |
Represents information elements in a Wi-Fi Direct packet. |
WiFiDirectLegacySettings |
Settings governing "legacy" mode (non-Wi-Fi Direct connections to the access point being advertised.) |
Enums
WiFiDirectAdvertisementListenStateDiscoverability |
Specifies whether the Wi-Fi Direct device is listening and discoverable. |
WiFiDirectAdvertisementPublisherStatus |
Represents the possible states of the WiFiDirectAdvertisementPublisher. |
WiFiDirectConfigurationMethod |
Specifies a Wi-Fi Direct configuration method. Configuration is how a user tells one piece of Wi-Fi Direct equipment to connect to another piece of Wi-Fi Direct equipment. |
WiFiDirectConnectionStatus |
Describes the connection status of a WiFiDirectDevice object. |
WiFiDirectDeviceSelectorType |
Specifies the device selector type for Wi-Fi Direct. |
WiFiDirectError |
Specifies some common Wi-Fi Direct error cases. |
WiFiDirectPairingProcedure |
Specifies a direct pairing procedure. |
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();
}
}
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 classes in the Windows.Networking.Sockets namespace.
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.