Windows.Devices.WiFiDirect Namespace
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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.