Windows.Devices.WiFiDirect.Services 命名空间
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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,必须先使用
请注意,配对配置文件对两个 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);
}
}
}
}