Windows.Devices.WiFiDirect.Services Пространство имен
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обеспечивает поддержку реализации собственных служб Wi-Fi Direct Services.
Wi-Fi Direct — это технология, которая позволяет двум устройствам напрямую подключаться друг к другу с помощью Wi-Fi, не подключаясь к существующей сети через точку доступа. Wi-Fi Службы Direct — это способ, которым одно устройство ( рекламодатель услуг) предоставляет возможности другому устройству ( искателю услуг) через Wi-Fi прямое подключение. Искатель использует рекламируемую службу, устанавливая сеанс. Данное устройство может объявлять несколько служб, а также искать несколько служб. Роли искателя и рекламодателя определяются с учетом того, как устройства взаимодействуют в определенном сеансе.
Хотя спецификация Wi-Fi Direct Services определяет несколько стандартных служб, этот API поддерживает только службу Enable . Он не поддерживает функции отправки, воспроизведения, печати или отображения .
Классы
WiFiDirectService |
Представляет службу Wi-Fi Direct. Этот класс используется кодом на устройстве, которое пытается использовать Wi-Fi Direct Service, чтобы установить сеанс Wi-Fi Direct Service с поставщиком услуг. |
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 |
Возвращается при возникновении события WiFiDirectServiceAdvertiser.SessionRequested . |
Перечисления
WiFiDirectServiceAdvertisementStatus |
Значения, используемые для WiFiDirectServiceAdvertiser.AdvertisementStatus. |
WiFiDirectServiceConfigurationMethod |
Значения, описывающие, как выполняется настройка службы при создании сеанса. Как правило, ввод не требуется, либо одно устройство в сеансе отображает ПИН-код, а другое устройство требует ввода ПИН-кода. |
WiFiDirectServiceError |
Значения, используемые для свойства WiFiDirectServiceAdvertiser.ServiceError . |
WiFiDirectServiceIPProtocol |
Определяет константы, указывающие IP-протокол нового порта при возникновении события WiFiDirectServiceSession.RemotePortAdded . |
WiFiDirectServiceSessionErrorStatus |
Значения, используемые в свойстве WiFiDirectServiceSession.ErrorStatus . |
WiFiDirectServiceSessionStatus |
Значения, используемые для описания состояния сеанса Wi-Fi Direct Service. |
WiFiDirectServiceStatus |
Значения, используемые для описания состояния службы. |
Комментарии
Настройка владельца группы (GO)
Возможно, вам потребуется иметь возможность точно контролировать, какой из членов одноранговой группы (P2P) является владельцем группы (GO). Код должен использовать свойство WiFiDirectAdvertiser.PreferGroupOwnerMode , чтобы указать, что данный рекламодатель хочет быть GO. Однако если два устройства ранее были связаны с помощью Wi-Fi Direct, то Wi-Fi прямые роли в сохраненном профиле из этого связывания переопределяют указанные предпочтения рекламодателя. Чтобы гарантировать, что данное устройство в паре P2P будет go, необходимо сначала удалить все существующие данные связывания, используя методы, предоставляемые пространством имен Windows.Devices.Enumeration .
Обратите внимание, что профиль связывания связывает два MAC-адреса, поэтому непарные два устройства применяются ко всем приложениям, которые используют Wi-Fi Direct между этими двумя устройствами. Приложение никогда не должно предполагать, что профиль связывания существует или что он не был изменен другим приложением, даже если он был связан с устройством в прошлом. Вы должны получать текущие данные профиля из текущего профиля, а не хранить данные профиля и предполагать, что они по-прежнему верны позже. Другое приложение могло изменить профиль связывания в промежуточном режиме.
Следующий код находит любой 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);
}
}
}
}