Windows.Devices.WiFiDirect.Services 命名空间

Important

Windows。Devices.WiFiDirect.Services 命名空间已弃用。

为实现自己的 Wi-Fi Direct Services 提供支持。

Wi-Fi Direct 是一种技术,使两台设备能够使用 Wi-Fi 直接连接到对方,而无需通过接入点加入现有网络。 Wi-Fi Direct Services 是一台设备( 服务广告商)通过 Wi-Fi 直接连接向另一台设备( 服务搜寻者)提供功能的方式。 搜寻者通过建立 会话来利用播发的服务。 给定的设备可以播发多个服务,并寻求多个服务。 有关设备在特定会话中的交互方式,定义了 Seeker 和广告商角色。

虽然 Wi-Fi Direct Services 规范定义了多个标准服务,但此 API 仅支持 启用 服务。 它不支持 发送播放打印显示 功能。

名称 说明
WiFiDirectService

Important

Windows。Devices.WiFiDirect.Services 命名空间已弃用。

表示 Wi-Fi 直接服务。 此类由寻求使用 Wi-Fi Direct Service 的设备上的代码使用,以便与服务提供商建立 Wi-Fi 直接服务会话。

WiFiDirectServiceAdvertiser

已弃用。 表示服务广告商。 此类由播发 Wi-Fi Direct Services 的设备上的代码用于播发服务。

WiFiDirectServiceAutoAcceptSessionConnectedEventArgs

已弃用。 当引发 WiFiDirectServiceAdvertiser.AutoAcceptSessionConnected 事件时返回。

WiFiDirectServiceProvisioningInfo

已弃用。 包含有关 Wi-Fi Direct Service 的预配信息。

WiFiDirectServiceRemotePortAddedEventArgs

已弃用。 当引发 WiFiDirectServiceSession.RemotePortAdded 事件时返回。 事件处理程序应使用此信息来建立与新端口的新套接字连接。

WiFiDirectServiceSession

已弃用。 表示 Wi-Fi Direct Services (WFDS) 会话。

WiFiDirectServiceSessionDeferredEventArgs

已弃用。 在引发 WiFiDirectService.SessionDeferred 事件时返回。

WiFiDirectServiceSessionRequest

已弃用。 描述 Wi-Fi 直接服务会话请求。

WiFiDirectServiceSessionRequestedEventArgs

已弃用。 当引发 WiFiDirectServiceAdvertiser.SessionRequested 事件时返回。

枚举

名称 说明
WiFiDirectServiceAdvertisementStatus

已弃用。 用于 WiFiDirectServiceAdvertiser.AdvertisementStatus 的值。

WiFiDirectServiceConfigurationMethod

已弃用。 描述在建立会话时如何执行服务配置的值。 通常,不需要输入,或者会话中的一台设备显示 PIN,另一台设备要求输入 PIN。

WiFiDirectServiceError

已弃用。 用于 WiFiDirectServiceAdvertiser.ServiceError 属性的值。

WiFiDirectServiceIPProtocol

已弃用。 定义在引发 WiFiDirectServiceSession.RemotePortAdded 事件时指定新端口的 IP 协议的常量。

WiFiDirectServiceSessionErrorStatus

已弃用。 WiFiDirectServiceSession.ErrorStatus 属性中使用的值。

WiFiDirectServiceSessionStatus

已弃用。 用于描述 Wi-Fi 直接服务会话状态的值。

WiFiDirectServiceStatus

已弃用。 用于描述服务状态的值。

注解

设置组所有者 (GO)

你可能希望能够精确控制对对等组(P2P)组的成员是组所有者(GO)。 代码应使用 WiFiDirectAdvertiser.PreferGroupOwnerMode 属性来指定给定广告商希望成为 GO。 但是,如果以前通过 Wi-Fi Direct 配对了两台设备,则保存的配置文件中的 Wi-Fi 直接角色会覆盖广告商的指定首选项。 若要保证 P2P 配对中的给定设备为 GO,必须先使用 Windows。Devices.Enumeration 命名空间。

请注意,配对配置文件对两个 MAC 地址,因此取消配对两个设备适用于在这两台设备之间使用 Wi-Fi 直接的所有应用。 你的应用绝不应假定存在配对配置文件,或者它尚未由另一个应用更改,即使它过去已与设备配对也是如此。 应从当前配置文件中获取当前配置文件信息,而不是存储配置文件信息,并假设该信息在以后仍为 true。 另一个应用可能在过渡期间更改了配对配置文件。

以下代码查找本地设备与另一台设备之间的任何 Wi-Fi 直接配对配置文件,以及取消配对这两台设备。 在此代码成功取消配对两台设备后,后续配对将在配对时遵守 WiFiDirectAdvertiser.PreferGroupOwnerMode 值处于活动状态。

using Windows.Devices.Enumeration;

private async void Unpair_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
    if (DiscoveredServices.Items.Count > 0)
    {
        DiscoveredDeviceWrapper service = 
            (DiscoveredDeviceWrapper)DiscoveredServices.Items[DiscoveredServices.SelectedIndex];

        String[] aepId = service.DeviceInfo.Id.Split('#');
        String deviceSelector = "System.Devices.DeviceInstanceId:=\"SWD\\WiFiDirect\\" + aepId[1] + "\"";

        // Check if device is paired
        DeviceInformationCollection pairedDeviceCollection = 
            await DeviceInformation.FindAllAsync(deviceSelector, null, DeviceInformationKind.DeviceInterface);

        if (pairedDeviceCollection.Count > 0)
        {
            try
            {
                DeviceInformation devInfo = pairedDeviceCollection[0];
                await devInfo.Pairing.UnpairAsync();
                MainPage.Current.NotifyUser("UnpairAsync succeeded", NotifyType.StatusMessage);
            }

            catch (Exception ex)
            {
                MainPage.Current.NotifyUser("UnpairAsync failed: " + ex.Message, NotifyType.ErrorMessage);
            }
        }
    }
}

另请参阅