Windows.Devices.WiFiDirect.Services 命名空间
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为实现你自己的 Wi-Fi Direct Services 提供支持。
Wi-Fi Direct 是一种技术,它使两个设备能够使用 Wi-Fi 直接相互连接,而无需通过接入点加入现有网络。 Wi-Fi Direct Services 是一台设备 (Service 广告商) 通过 Wi-Fi Direct 连接向另一台设备提供功能的方式, (Service Seeker) 。 搜寻器通过建立 会话来利用播发的服务。 给定设备可以播发多个服务,还可以寻求多个服务。 Seeker 和广告商角色是针对设备在特定会话中的交互方式定义的。
虽然 Wi-Fi Direct Services 规范定义了多个标准服务,但此 API 仅支持 启用 服务。 它不支持 发送、 播放、 打印或 显示 功能。
类
WiFiDirectService |
表示 Wi-Fi Direct 服务。 此类由寻求使用 Wi-Fi Direct 服务的设备上的代码用于与服务提供商建立Wi-Fi Direct 服务会话。 |
WiFiDirectServiceAdvertiser |
表示服务广告商。 此类由播发 Wi-Fi Direct Services 的设备上的代码用于播发服务。 |
WiFiDirectServiceAutoAcceptSessionConnectedEventArgs |
在引发 WiFiDirectServiceAdvertiser.AutoAcceptSessionConnected 事件时返回。 |
WiFiDirectServiceProvisioningInfo |
包含有关 Wi-Fi Direct 服务的预配信息。 |
WiFiDirectServiceRemotePortAddedEventArgs |
引发 WiFiDirectServiceSession.RemotePortAdded 事件时返回。 事件处理程序应使用此信息与新端口建立新的套接字连接。 |
WiFiDirectServiceSession |
表示 Wi-Fi Direct Services (WFDS) 会话。 |
WiFiDirectServiceSessionDeferredEventArgs |
引发 WiFiDirectService.SessionDeferred 事件时返回。 |
WiFiDirectServiceSessionRequest |
描述Wi-Fi Direct Service 会话请求。 |
WiFiDirectServiceSessionRequestedEventArgs |
枚举
WiFiDirectServiceAdvertisementStatus | |
WiFiDirectServiceConfigurationMethod |
描述建立会话时如何执行服务配置的值。 通常,无需输入,或者会话中的一台设备显示 PIN,而另一台设备要求输入 PIN。 |
WiFiDirectServiceError | |
WiFiDirectServiceIPProtocol |
定义在引发 WiFiDirectServiceSession.RemotePortAdded 事件时指定新端口的 IP 协议的常量。 |
WiFiDirectServiceSessionErrorStatus |
WiFiDirectServiceSession.ErrorStatus 属性中使用的值。 |
WiFiDirectServiceSessionStatus |
用于描述 Wi-Fi Direct 服务会话状态的值。 |
WiFiDirectServiceStatus |
用于描述服务状态的值。 |
注解
设置组所有者 (GO)
你可能希望能够精确控制 P2P (P2P) 组的哪些成员是组所有者 (GO) 。 代码应使用 WiFiDirectAdvertiser.PreferGroupOwnerMode 属性来指定给定广告客户希望成为 GO。 但是,如果两个设备以前已通过 Wi-Fi Direct 配对,则Wi-Fi该配对中保存的配置文件中的直接角色将替代广告商的指定首选项。 为了保证 P2P 配对中的给定设备为 GO,必须先使用 Windows.Devices.Enumeration 命名空间提供的方法删除任何现有的配对数据。
请注意,配对配置文件会配对两个 MAC 地址,因此取消配对两个设备适用于这两个设备之间使用 Wi-Fi Direct 的所有应用。 你的应用绝不应假定配对配置文件存在,或者它未被另一个应用更改过,即使它过去曾与设备配对。 应从当前配置文件获取当前配置文件信息,而不是存储配置文件信息,并假设稍后仍为 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);
}
}
}
}