WiFiDirectDevice 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
管理与关联Wi-Fi Direct 设备的连接。
public ref class WiFiDirectDevice sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class WiFiDirectDevice final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class WiFiDirectDevice : System.IDisposable
Public NotInheritable Class WiFiDirectDevice
Implements IDisposable
- 继承
- 属性
- 实现
Windows 要求
设备系列 |
Windows 10 (在 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox 中引入)
|
API contract |
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)
|
示例
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();
}
}
注解
可以使用 WiFiDirectDevice 类与具有 Wi-Fi Direct (WFD) 设备的其他设备建立套接字连接。 可以调用 GetDeviceSelector 方法来获取 Wi-Fi Direct 设备的设备标识符。 在计算机上引用 WiFiDirectDevice 后,可以调用 GetConnectionEndpointPairs 方法来获取 EndpointPair 对象,并使用 Windows.Networking.Sockets API 建立套接字连接。
可以为 ConnectionStatusChanged 事件添加处理程序,以便在连接已建立或断开连接时收到通知。
一次只能将一个应用连接到Wi-Fi Direct 设备。
必须启用 邻近感应 功能才能与Wi-Fi Direct 设备通信。
属性
ConnectionStatus |
获取WiFi-Direct设备的连接状态。 |
DeviceId |
获取 Wi-Fi Direct 设备的 DeviceInformation ID 。 |
方法
Close() |
关闭活动Wi-Fi直接设备连接。 |
Dispose() |
执行与释放或重置非托管资源关联的应用程序定义的任务。 |
FromIdAsync(String) |
为指定的设备接口 ID 创建 WiFiDirectDevice 类的实例。 |
FromIdAsync(String, WiFiDirectConnectionParameters) |
为具有特定连接参数的指定设备接口 ID 创建 WiFiDirectDevice 类的实例。 |
GetConnectionEndpointPairs() |
获取Wi-Fi Direct 设备的网络地址集合,作为终结点对。 |
GetDeviceSelector() |
返回可用于枚举 Wi-Fi Direct 设备的类选择字符串。 |
GetDeviceSelector(WiFiDirectDeviceSelectorType) |
返回可用于枚举特定Wi-Fi Direct 设备选择器类型的Wi-Fi Direct 设备的类选择字符串。 |
事件
ConnectionStatusChanged |
当Wi-Fi直接设备连接已连接或断开连接时发生。 |