Windows.Devices.WiFiDirect.Services Пространство имен

Important

Windows. Пространство имен Devices.WiFiDirect.Services устарело.

Предоставляет поддержку реализации собственных Wi-Fi Direct Services.

Wi-Fi Direct — это технология, которая позволяет двум устройствам напрямую подключаться друг к другу с помощью Wi-Fi, не требуя соединения существующей сети через точку доступа. Wi-Fi Direct Services — это способ, которым одно устройство ( рекламодатель услуг) предоставляет возможности другому устройству ( просатель услуг) через Wi-Fi прямое подключение. Ищущий использует рекламируемую службу путем создания сеанса. Данное устройство может объявлять несколько служб, а также запрашивать несколько служб. Роли "Ищущий" и "Рекламодатель" определяются в отношении взаимодействия устройств в определенном сеансе.

Хотя спецификация Wi-Fi Direct Services определяет несколько стандартных служб, этот API поддерживает только службу Enable . Она не поддерживает функции отправки, воспроизведения, печати или отображения .

Классы

Имя Описание
WiFiDirectService

Important

Windows. Пространство имен Devices.WiFiDirect.Services устарело.

Представляет Wi-Fi прямую службу. Этот класс используется кодом на устройстве, который стремится использовать Wi-Fi Direct Service, чтобы установить сеанс Wi-Fi Direct Service с поставщиком услуг.

WiFiDirectServiceAdvertiser

Deprecated. Представляет рекламодателя службы. Этот класс используется кодом на устройстве, которое объявляет Wi-Fi Direct Services для объявления службы.

WiFiDirectServiceAutoAcceptSessionConnectedEventArgs

Deprecated. Возвращается при вызове события WiFiDirectServiceAdvertiser.AutoAcceptSessionConnected .

WiFiDirectServiceProvisioningInfo

Deprecated. Содержит сведения о подготовке Wi-Fi Direct Service.

WiFiDirectServiceRemotePortAddedEventArgs

Deprecated. Возвращается при вызове события WiFiDirectServiceSession.RemotePortAdded . Обработчик событий должен использовать эти сведения для установления новых подключений сокета к новому порту.

WiFiDirectServiceSession

Deprecated. Представляет сеанс Wi-Fi Direct Services (WFDS).

WiFiDirectServiceSessionDeferredEventArgs

Deprecated. Возвращается при вызове события WiFiDirectService.SessionDeferred .

WiFiDirectServiceSessionRequest

Deprecated. Описывает запрос сеанса Wi-Fi Direct Service.

WiFiDirectServiceSessionRequestedEventArgs

Deprecated. Возвращается при вызове события WiFiDirectServiceAdvertiser.SessionRequested .

Перечисления

Имя Описание
WiFiDirectServiceAdvertisementStatus

Deprecated. Значения, используемые для WiFiDirectServiceAdvertiser.Advertiser.AdStatus.

WiFiDirectServiceConfigurationMethod

Deprecated. Значения, описывающие, как выполняется настройка службы при установке сеанса. Как правило, входные данные не требуются, или одно устройство в сеансе отображает ПИН-код, а для другого устройства требуется ввести ПИН-код.

WiFiDirectServiceError

Deprecated. Значения, используемые для свойства WiFiDirectServiceAdvertiser.ServiceError .

WiFiDirectServiceIPProtocol

Deprecated. Определяет константы, указывающие IP-протокол нового порта при вызове события WiFiDirectServiceSession.RemotePortAdded .

WiFiDirectServiceSessionErrorStatus

Deprecated. Значения, используемые в свойстве WiFiDirectServiceSession.ErrorStatus .

WiFiDirectServiceSessionStatus

Deprecated. Значения, используемые для описания состояния сеанса прямой службы Wi-Fi.

WiFiDirectServiceStatus

Deprecated. Значения, используемые для описания состояния службы.

Комментарии

Задание владельца группы (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);
            }
        }
    }
}

См. также раздел