Wifi direct api windows

Windows. Devices. Wi FiDirect. Services Namespace

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Provides support for implementing your own Wi-Fi Direct Services.

Wi-Fi Direct is a technology that enables two devices to connect directly to each other using Wi-Fi, without needing to join an existing network through an access point. Wi-Fi Direct Services are the way that one device (a Service Advertiser) offers capabilities to another device (a Service Seeker) over a Wi-Fi Direct connection. A seeker makes use of an advertised service by establishing a session. A given device can advertise multiple services and also seek multiple services. The Seeker and Advertiser roles are defined with respect to how the devices interact in a particular session.

While the Wi-Fi Direct Services specification defines several standard services, this API supports only the Enable service. It does not support Send, Play, Print, or Display functionality.

Classes

Represents a Wi-Fi Direct service. This class is used by code on a device that seeks to use a Wi-Fi Direct Service, to establish a Wi-Fi Direct Service session with the service provider.

Represents a Service Advertiser. This class is used by code on a device that advertises Wi-Fi Direct Services, to advertise the service.

Contains provisioning information about a Wi-Fi Direct Service.

Returned when a WiFiDirectServiceSession.RemotePortAdded event is raised. Your event handler should use this information to establish new socket connections to the new port.

Represents a Wi-Fi Direct Services (WFDS) session.

Describes a Wi-Fi Direct Service session request.

Enums

Values describing how service configuration is performed when a session is being established. Typically, either no input is required, or one device in the session displays a PIN and the other device requires that the PIN be entered.

Defines constants that specify the IP protocol of the new port when a WiFiDirectServiceSession.RemotePortAdded event is raised.

Values used to describe the status of a Wi-Fi Direct Service Session.

Values used to describe the service status.

Remarks

Setting the Group Owner (GO)

You might want to be able to exert precise control over which of the members of a Peer to Peer (P2P) group is the Group Owner (GO). Your code should use the WiFiDirectAdvertiser.PreferGroupOwnerMode property to specify that a given advertiser wants to be the GO. However, if two devices have been previously paired via Wi-Fi Direct, then the Wi-Fi direct roles in the saved profile from that pairing override the advertiser’s specified preference. In order to guarantee that a given device in a P2P pairing will be the GO, you must first delete any existing pairing data, using methods provided by the Windows.Devices.Enumeration namespace.

Читайте также:  Тошиба драйвера вайфай ноутбук

Note that a pairing profile pairs two MAC addresses, so unpairing two devices applies to all apps that use Wi-Fi Direct between those two devices. Your app should never assume that a pairing profile exists, or that it has not been changed by another app, even if it has paired with a device in the past. You should get current profile information from the current profile rather than storing profile information and assuming it is still true at a later date. Another app might have changed the pairing profile in the interim.

The following code finds any Wi-Fi Direct pairing profile between the local device and another device, and unpairs the two devices. After this code has successfully unpaired the two devices, subsequent pairing will obey the WiFiDirectAdvertiser.PreferGroupOwnerMode value active at the time of pairing.

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); >> > > 

See also

Источник

Windows. Devices. Wi FiDirect Пространство имен

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Содержит классы, поддерживающие подключение к связанным Wi-Fi прямым устройствам и связанным конечным точкам для компьютеров, планшетов и телефонов.

Классы

Представляет Wi-Fi прямую рекламу и позволяет приложению управлять состоянием прослушивания и пользовательскими элементами информации в объявлении.

Объект для публикации Wi-Fi прямых объявлений.

Класс, используемый для прослушивания входящих Wi-Fi запросов прямого подключения.

Используется приложением для указания параметров подключения для операции прямого подключения и связывания Wi-Fi.

Примеры приложений, использующих этот класс, включают пример Wi-Fi Direct.

Запрос Wi-Fi прямого подключения, полученный WiFiDirectConnectionListener.

Управляет подключениями к связанным Wi-Fi прямым устройствам.

Представляет информационные элементы в пакете Wi-Fi Direct.

Параметры, управляющие режимом прежних версий (не Wi-Fi Direct подключения к объявляемой точке доступа.)

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

Указывает, прослушивает ли Wi-Fi прямое устройство.

Задает метод конфигурации Wi-Fi Direct. Конфигурация заключается в том, как пользователь сообщает одному элементу Wi-Fi прямого оборудования подключиться к другому элементу Wi-Fi Direct.

Описывает состояние подключения объекта WiFiDirectDevice .

Указывает тип селектора устройства для Wi-Fi Direct.

Указывает некоторые распространенные Wi-Fi случаев ошибок Direct.

Задает процедуру прямого связывания.

Примеры

Windows.Devices.WiFiDirect.WiFiDirectDevice wfdDevice; private async System.Threading.Tasks.Task Connect(string deviceId) < string result = ""; try < // No device ID specified. if (String.IsNullOrEmpty(deviceId)) < return "Please specify a Wi-Fi Direct device ID."; >// Connect to the selected Wi-Fi Direct device. wfdDevice = await Windows.Devices.WiFiDirect.WiFiDirectDevice.FromIdAsync(deviceId); if (wfdDevice == null) < result = "Connection to " + deviceId + " failed."; >// Register for connection status change notification. wfdDevice.ConnectionStatusChanged += new TypedEventHandler(OnConnectionChanged); // Get the EndpointPair information. var EndpointPairCollection = wfdDevice.GetConnectionEndpointPairs(); if (EndpointPairCollection.Count > 0) < var endpointPair = EndpointPairCollection[0]; result = "Local IP address " + endpointPair.LocalHostName.ToString() + " connected to remote IP address " + endpointPair.RemoteHostName.ToString(); >else < result = "Connection to " + deviceId + " failed."; >> catch (Exception err) < // Handle error. result = "Error occurred: " + err.Message; >return result; > private void OnConnectionChanged(object sender, object arg) < Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus status = (Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus)arg; if (status == Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus.Connected) < // Connection successful. >else < // Disconnected. Disconnect(); >> private void Disconnect() < if (wfdDevice != null) < wfdDevice.Dispose(); >> 

Комментарии

Класс WiFiDirectDevice можно использовать для установки подключения сокета к другим устройствам с устройством с поддержкой Wi-Fi Direct (WFD). Можно вызвать метод GetDeviceSelector , чтобы получить идентификатор устройства для устройства Wi-Fi Direct. Получив ссылку на WiFiDirectDevice на компьютере, можно вызвать метод GetConnectionEndpointPairs , чтобы получить объект EndpointPair и установить подключение сокета с помощью классов в пространстве имен Windows.Networking.Sockets .

Читайте также:  Серый значок wifi нет интернета

Вы можете добавить обработчик события ConnectionStatusChanged , чтобы получать уведомления о том, что подключение установлено или отключено.

Одновременно к устройству Wi-Fi Direct можно подключить только одно приложение.

Необходимо включить возможность близкого взаимодействия с Wi-Fi прямыми устройствами.

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

Источник

Сведения о функции Wi-Fi Direct

Собственный API Wi-Fi содержит набор функций, поддерживающих использование Wi-Fi Direct для классических приложений. Начиная с Windows 8 и Windows Server 2012, функции Wi-Fi Direct были добавлены в собственный API Wi-Fi.

Функция Wi-Fi Direct основана на разработке Wi-Fi одноранговой технической спецификации версии 1.1 Wi-Fi Alliance (см. опубликованные спецификации Wi-Fi Alliance). Целью технической спецификации Wi-Fi одноранговой связи является предоставление решения для Wi-Fi подключения между устройствами без необходимости в беспроводной точке доступа (беспроводной точке доступа) для настройки подключения или использовании существующего механизма Wi-Fi ad hoc (IBSS).

Нерегламентированный режим может быть недоступен в будущих версиях Windows. Начиная с Windows 8.1 и Windows Server 2012 R2 используйте Wi-Fi Direct.

Для классического приложения функция Wi-Fi Direct требует, чтобы устройства Wi-FI Direct ранее были связаны пользователем с пользовательским интерфейсом связывания Windows. После завершения связывания сохраняется профиль, который позволяет использовать функции Wi-Fi Direct для запуска сеанса Wi-Fi Direct для установки подключения между устройствами Wi-Fi Direct.

Следующие функции поддерживают функцию Wi-Fi Direct.

  • WFDCancelOpenSession — указывает, что приложение хочет отменить ожидающую функцию WFDStartOpenSession , которая еще не завершена.
  • WFDCloseHandle — закрывает дескриптор для службы Wi-Fi Direct.
  • WFDCloseSession — закрывает сеанс после успешного вызова функции WFDStartOpenSession .
  • WFDOpenHandle — открывает дескриптор службы Wi-Fi Direct и согласовывает версию API Wi-FI Direct для использования.
  • WFDOpenLegacySession — извлекает и применяет сохраненный профиль для устройства Wi-Fi Direct прежних версий.
  • WFDStartOpenSession — запускает подключение по запросу к определенному устройству Wi-Fi Direct, которое ранее было сопряжено через интерфейс связывания Windows.
  • WFDUpdateDeviceVisibility — Обновления видимость устройства для адреса устройства Wi-Fi Direct для заданного установленного узла устройства Wi-Fi Direct.
  • WFD_OPEN_SESSION_COMPLETE_CALLBACK — определяет функцию обратного вызова, вызываемую функцией WFDStartOpenSession после завершения операции WFDStartOpenSession .

Дополнительные сведения об использовании Wi-Fi Direct в классическом приложении см. в статье Использование функций Wi-Fi Direct.

Дополнительные сведения о Wi-Fi Direct для использования в приложениях Магазина Windows см. в статье PeerFinder и связанные классы в пространстве имен Windows.Networking.Proximity .

Связанные темы

Другие ресурсы

Читайте также:  Пропал пароль от вайфая

Источник

Windows. Devices. Wi FiDirect Namespace

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Contains classes that support connecting to associated Wi-Fi Direct devices and associated endpoints for PCs, tablets, and phones.

Classes

Represents a Wi-Fi Direct advertisement and allows the app to control the listen state and custom information elements in the advertisement.

An object to publish Wi-Fi Direct advertisements.

Class used to listen for incoming Wi-Fi Direct connection requests.

Used by an app to specify the connection parameters for a Wi-Fi Direct connect/pairing operation.

Sample applications that use this class include the Wi-Fi Direct sample.

A Wi-Fi Direct connection request received by a WiFiDirectConnectionListener.

Manages connections to associated Wi-Fi Direct devices.

Represents information elements in a Wi-Fi Direct packet.

Settings governing «legacy» mode (non-Wi-Fi Direct connections to the access point being advertised.)

Enums

Specifies whether the Wi-Fi Direct device is listening and discoverable.

Represents the possible states of the WiFiDirectAdvertisementPublisher.

Specifies a Wi-Fi Direct configuration method. Configuration is how a user tells one piece of Wi-Fi Direct equipment to connect to another piece of Wi-Fi Direct equipment.

Describes the connection status of a WiFiDirectDevice object.

Specifies the device selector type for Wi-Fi Direct.

Specifies some common Wi-Fi Direct error cases.

Specifies a direct pairing procedure.

Examples

Windows.Devices.WiFiDirect.WiFiDirectDevice wfdDevice; private async System.Threading.Tasks.Task Connect(string deviceId) < string result = ""; try < // No device ID specified. if (String.IsNullOrEmpty(deviceId)) < return "Please specify a Wi-Fi Direct device ID."; >// Connect to the selected Wi-Fi Direct device. wfdDevice = await Windows.Devices.WiFiDirect.WiFiDirectDevice.FromIdAsync(deviceId); if (wfdDevice == null) < result = "Connection to " + deviceId + " failed."; >// Register for connection status change notification. wfdDevice.ConnectionStatusChanged += new TypedEventHandler(OnConnectionChanged); // Get the EndpointPair information. var EndpointPairCollection = wfdDevice.GetConnectionEndpointPairs(); if (EndpointPairCollection.Count > 0) < var endpointPair = EndpointPairCollection[0]; result = "Local IP address " + endpointPair.LocalHostName.ToString() + " connected to remote IP address " + endpointPair.RemoteHostName.ToString(); >else < result = "Connection to " + deviceId + " failed."; >> catch (Exception err) < // Handle error. result = "Error occurred: " + err.Message; >return result; > private void OnConnectionChanged(object sender, object arg) < Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus status = (Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus)arg; if (status == Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus.Connected) < // Connection successful. >else < // Disconnected. Disconnect(); >> private void Disconnect() < if (wfdDevice != null) < wfdDevice.Dispose(); >> 

Remarks

You can use the WiFiDirectDevice class to establish a socket connection with other devices that have a Wi-Fi Direct (WFD) capable device. You can call the GetDeviceSelector method to get the device identifier for a Wi-Fi Direct device. Once you have a reference to a WiFiDirectDevice on your computer, you can call the GetConnectionEndpointPairs method to get an EndpointPair object and establish a socket connection using classes in the Windows.Networking.Sockets namespace.

You can add a handler for the ConnectionStatusChanged event to be notified when the connection has been established or disconnected.

Only one app can be connected to a Wi-Fi Direct device at a time.

You must enable the Proximity capability to communicate with Wi-Fi Direct devices.

See also

Источник

Оцените статью
Adblock
detector