Windows.Devices.WiFiDirect.Services Namespace
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Importante
O Windows. O namespace Devices.WiFiDirect.Services foi preterido.
Fornece suporte para implementar seu próprio Wi-Fi Direct Services.
Wi-Fi Direct é uma tecnologia que permite que dois dispositivos se conectem diretamente um ao outro usando Wi-Fi, sem a necessidade de ingressar em uma rede existente por meio de um ponto de acesso. Wi-Fi Serviços Diretos são a maneira como um dispositivo (um Anunciante de Serviço) oferece recursos para outro dispositivo (um Buscador de Serviço) por meio de uma conexão Wi-Fi Direct. Um buscador usa um serviço anunciado estabelecendo uma sessão. Um determinado dispositivo pode anunciar vários serviços e também buscar vários serviços. As funções Seeker e Advertiser são definidas em relação à forma como os dispositivos interagem em uma sessão específica.
Embora a especificação Wi-Fi Direct Services defina vários serviços padrão, essa API dá suporte apenas ao serviço Habilitar . Ele não dá suporte à funcionalidade Enviar, Reproduzir, Imprimir ou Exibir .
Classes
| Nome | Description |
|---|---|
| WiFiDirectService |
Importante O Windows. O namespace Devices.WiFiDirect.Services foi preterido. Representa um serviço Wi-Fi Direct. Essa classe é usada por código em um dispositivo que busca usar um serviço Wi-Fi Direct, para estabelecer uma sessão de serviço direto Wi-Fi com o provedor de serviços. |
| WiFiDirectServiceAdvertiser |
Preterido. Representa um anunciante de serviços. Essa classe é usada por código em um dispositivo que anuncia Wi-Fi Serviços Diretos, para anunciar o serviço. |
| WiFiDirectServiceAutoAcceptSessionConnectedEventArgs |
Preterido. Retornado quando um evento WiFiDirectServiceAdvertiser.AutoAcceptSessionConnected é gerado. |
| WiFiDirectServiceProvisioningInfo |
Preterido. Contém informações de provisionamento sobre um Serviço Direto Wi-Fi. |
| WiFiDirectServiceRemotePortAddedEventArgs |
Preterido. Retornado quando um evento WiFiDirectServiceSession.RemotePortAdded é acionado. O manipulador de eventos deve usar essas informações para estabelecer novas conexões de soquete com a nova porta. |
| WiFiDirectServiceSession |
Preterido. Representa uma sessão do WFDS (Wi-Fi Direct Services). |
| WiFiDirectServiceSessionDeferredEventArgs |
Preterido. Retornado quando um evento WiFiDirectService.SessionDeferred é acionado. |
| WiFiDirectServiceSessionRequest |
Preterido. Descreve uma solicitação de sessão do Serviço Direto Wi-Fi. |
| WiFiDirectServiceSessionRequestedEventArgs |
Preterido. Retornado quando um evento WiFiDirectServiceAdvertiser.SessionRequested é gerado. |
Enumerações
| Nome | Description |
|---|---|
| WiFiDirectServiceAdvertisementStatus |
Preterido. Valores usados para WiFiDirectServiceAdvertiser.AdvertisementStatus. |
| WiFiDirectServiceConfigurationMethod |
Preterido. Valores que descrevem como a configuração de serviço é executada quando uma sessão está sendo estabelecida. Normalmente, nenhuma entrada é necessária ou um dispositivo na sessão exibe um PIN e o outro dispositivo requer que o PIN seja inserido. |
| WiFiDirectServiceError |
Preterido. Valores usados para a propriedade WiFiDirectServiceAdvertiser.ServiceError . |
| WiFiDirectServiceIPProtocol |
Preterido. Define constantes que especificam o protocolo IP da nova porta quando um evento WiFiDirectServiceSession.RemotePortAdded é acionado. |
| WiFiDirectServiceSessionErrorStatus |
Preterido. Valores usados na propriedade WiFiDirectServiceSession.ErrorStatus . |
| WiFiDirectServiceSessionStatus |
Preterido. Valores usados para descrever o status de uma sessão de serviço direto Wi-Fi. |
| WiFiDirectServiceStatus |
Preterido. Valores usados para descrever o status do serviço. |
Comentários
Definindo o proprietário do grupo (GO)
Talvez você queira poder exercer um controle preciso sobre qual dos membros de um grupo P2P (Ponto a Ponto) é o Proprietário do Grupo (GO). Seu código deve usar a propriedade WiFiDirectAdvertiser.PreferGroupOwnerMode para especificar que um determinado anunciante deseja ser o GO. No entanto, se dois dispositivos tiverem sido emparelhados anteriormente por meio de Wi-Fi Direct, o Wi-Fi funções diretas no perfil salvo desse emparelhamento substituirão a preferência especificada pelo anunciante. Para garantir que um determinado dispositivo em um emparelhamento P2P seja o GO, primeiro você deve excluir todos os dados de emparelhamento existentes, usando métodos fornecidos pelo Windows. Devices.Enumeration namespace.
Observe que um perfil de emparelhamento emparelha dois endereços MAC, portanto, o não pagamento de dois dispositivos se aplica a todos os aplicativos que usam Wi-Fi Direct entre esses dois dispositivos. Seu aplicativo nunca deve assumir que um perfil de emparelhamento existe ou que ele não foi alterado por outro aplicativo, mesmo que ele tenha emparelhado com um dispositivo no passado. Você deve obter informações de perfil atuais do perfil atual em vez de armazenar informações de perfil e supondo que elas ainda sejam verdadeiras em uma data posterior. Outro aplicativo pode ter alterado o perfil de emparelhamento nesse ínterim.
O código a seguir localiza qualquer Wi-Fi perfil de emparelhamento direto entre o dispositivo local e outro dispositivo e não paga os dois dispositivos. Depois que esse código tiver não pago com êxito os dois dispositivos, o emparelhamento subsequente obedecerá ao valor WiFiDirectAdvertiser.PreferGroupOwnerMode ativo no momento do emparelhamento.
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);
}
}
}
}