Windows.Devices.WiFiDirect 命名空间

包含支持连接到关联的Wi-Fi直接设备和电脑、平板电脑和手机的关联终结点的类。

WiFiDirectAdvertisement

表示Wi-Fi直接播发,并允许应用控制播发中的侦听状态和自定义信息元素。

WiFiDirectAdvertisementPublisher

用于发布Wi-Fi Direct 播发的对象。

WiFiDirectAdvertisementPublisherStatusChangedEventArgs

WiFiDirectAdvertisementPublisher 上的 StatusChanged 事件提供数据。

WiFiDirectConnectionListener

用于侦听传入Wi-Fi直接连接请求的类。

WiFiDirectConnectionParameters

由应用用于指定Wi-Fi直接连接/配对操作的连接参数。

使用此类的示例应用程序包括Wi-Fi Direct示例

WiFiDirectConnectionRequest

WiFiDirectConnectionListener 收到的Wi-Fi Direct 连接请求。

WiFiDirectConnectionRequestedEventArgs

WiFiDirectConnectionListener 上的 ConnectionRequested 事件提供数据。

WiFiDirectDevice

管理与关联Wi-Fi Direct 设备的连接。

WiFiDirectInformationElement

表示 Wi-Fi Direct 数据包中的信息元素。

WiFiDirectLegacySettings

控制“旧”模式的设置 (播发的接入点的非Wi-Fi Direct连接。)

枚举

WiFiDirectAdvertisementListenStateDiscoverability

指定 Wi-Fi Direct 设备是否在侦听和可发现。

WiFiDirectAdvertisementPublisherStatus

表示 WiFiDirectAdvertisementPublisher 的可能状态。

WiFiDirectConfigurationMethod

指定 Wi-Fi Direct 配置方法。 配置是用户告诉一件Wi-Fi Direct 设备连接到另一个Wi-Fi Direct 设备的方式。

WiFiDirectConnectionStatus

描述 WiFiDirectDevice 对象的连接状态。

WiFiDirectDeviceSelectorType

指定 Wi-Fi Direct 的设备选择器类型。

WiFiDirectError

指定一些常见的Wi-Fi直接错误情况。

WiFiDirectPairingProcedure

指定直接配对过程。

示例

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 命名空间中的类建立套接字连接。

可以为 ConnectionStatusChanged 事件添加处理程序,以便在连接已建立或断开连接时收到通知。

一次只能将一个应用连接到Wi-Fi Direct 设备。

必须启用 邻近感应 功能才能与Wi-Fi Direct 设备通信。

另请参阅