Emparelhar dispositivosPair devices

APIs importantesImportant APIs

Alguns dispositivos precisam ser emparelhados antes de serem usados.Some devices need to be paired before they can be used. O namespace Windows. Devices. Enumeration dá suporte a três maneiras diferentes de emparelhar dispositivos.The Windows.Devices.Enumeration namespace supports three different ways to pair devices.

  • Emparelhamento automáticoAutomatic pairing
  • Emparelhamento básicoBasic pairing
  • Emparelhamento personalizadoCustom pairing

Dica    Alguns dispositivos não precisam ser emparelhados para serem usados.Tip  Some devices do not need to be paired in order to be used. Isso é abordado na seção sobre emparelhamento automático.This is covered under the section on automatic pairing.

 

Emparelhamento automáticoAutomatic pairing

Às vezes você quer usar um dispositivo em seu aplicativo, mas não se preocupar com o fato de o dispositivo estar emparelhado ou não.Sometimes you want to use a device in your application, but do not care whether or not the device is paired. Quer simplesmente poder usar a funcionalidade associada a um dispositivo.You simply want to be able to use the functionality associated with a device. Por exemplo, se o seu aplicativo quer simplesmente capturar uma imagem de uma webcam, você não está necessariamente interessado no dispositivo em si, apenas a captura de imagem.For example, if your app wants to simply capture an image from a webcam, you are not necessarily interested in the device itself, just the image capture. Se houver APIs de dispositivos disponíveis para o dispositivo em que você está interessado, esse cenário se enquadrará no emparelhamento automático.If there are device APIs available for the device you are interested in, this scenario would fall under automatic pairing.

Nesse caso, você simplesmente usa as APIs associadas ao dispositivo, fazendo as chamadas conforme necessário e confiando no sistema para lidar com qualquer emparelhamento que possa ser necessário.In this case, you simply use the APIs associated with the device, making the calls as necessary and trusting the system to handle any pairing that might be necessary. Alguns dispositivos não precisam ser emparelhados para que você possa usar suas funcionalidades.Some devices do not need to be paired in order for you to use their functionality. Se o dispositivo realmente precisar ser emparelhado, as APIs do dispositivo manipularão a ação de emparelhamento em segundo plano, para que você não precise integrar essa funcionalidade ao seu aplicativo.If the device does need to be paired, then the device APIs will handle the pairing action behind the scenes so you do not need to integrate that functionality into your app. Seu aplicativo não terá nenhum conhecimento sobre um determinado dispositivo estar emparelhado ou não, ou se precisa estar, mas você ainda poderá acessar o dispositivo e usar sua funcionalidade.Your app will have no knowledge about whether or not a given device is paired or needs to be, but you will still be able to access the device and use its functionality.

Emparelhamento básicoBasic pairing

Emparelhamento básico é quando seu aplicativo usa as APIs Windows.Devices.Enumeration para tentar emparelhar o dispositivo.Basic pairing is when your application uses the Windows.Devices.Enumeration APIs in order to attempt to pair the device. Nessa situação, você permite que Windows tente realizar e manipule o processo de emparelhamento.In this scenario, you are letting Windows attempt the pairing process and handle it. Se for necessário alguma interação do usuário, ela será realizada pelo Windows.If any user interaction is necessary, it will be handled by Windows. Você usaria o emparelhamento básico se precisasse emparelhar com um dispositivo e não houvesse uma API de dispositivo relevante que tentasse o emparelhamento automático.You would use basic pairing if you need to pair with a device and there is not a relevant device API that will attempt automatic pairing. Você quer apenas poder usar o dispositivo e precisa emparelhá-lo primeiro.You just want to be able to use the device and need to pair with it first.

Antes de tentar realizar o emparelhamento básico, você precisa obter o objeto DeviceInformation para o dispositivo em que você está interessado.In order to attempt basic pairing, you first need to obtain the DeviceInformation object for the device you are interested in. Assim que receber esse objeto, você vai interagir com a propriedade DeviceInformation.Pairing, que é um objeto DeviceInformationPairing.Once you receive that object, you will interact with the DeviceInformation.Pairing property, which is a DeviceInformationPairing object. Para tentar emparelhar, basta chamar DeviceInformationPairing.PairAsync.To attempt to pair, simply call DeviceInformationPairing.PairAsync. Você precisará esperar o resultado para dar ao seu aplicativo tempo para tentar completar a ação de emparelhamento.You will need to await the result in order to give your app time to attempt to complete the pairing action. O resultado da ação de emparelhamento será retornado e, desde que nenhum erro seja retornado, o dispositivo será emparelhado.The result of the pairing action will be returned, and as long as no errors are returned, the device will be paired.

Se estiver usando o emparelhamento básico, você também tem acesso a informações adicionais sobre o status de emparelhamento do dispositivo.If you are using basic pairing, you also have access to additional information about the pairing status of the device. Por exemplo, você sabe o status de emparelhamento (IsPaired) e se o dispositivo pode emparelhar (CanPair).For example you know the pairing status (IsPaired) and whether the device can pair (CanPair). Ambas são propriedades do objeto DeviceInformationPairing.Both of these are properties of the DeviceInformationPairing object. Se estiver usando o emparelhamento automático, você talvez não tenha acesso a essas informações a menos que obtenha os objetos DeviceInformation relevantes.If you are using automatic pairing, you might not have access to this information unless you obtain the relevant DeviceInformation objects.

Emparelhamento personalizadoCustom pairing

O emparelhamento personalizado permite que seu aplicativo participe do processo de emparelhamento.Custom pairing enables your app to participate in the pairing process. Isso permite que seu aplicativo especifique os DevicePairingKinds que têm suporte para o processo de emparelhamento.This allows your app to specify the DevicePairingKinds that are supported for the pairing process. Você também será responsável pela criação de sua própria interface do usuário para interagir com o usuário conforme a necessidade.You will also be responsible for creating your own user interface to interact with the user as needed. Use o emparelhamento personalizado quando quiser que o aplicativo tenha um pouco mais de influência na maneira como o processo de emparelhamento ocorre ou para exibir sua própria interface de usuário de emparelhamento.Use custom pairing when you want your app to have a little more influence over how the pairing process proceeds or to display your own pairing user interface.

Para implementar o emparelhamento personalizado, você precisará obter o objeto DeviceInformation para o dispositivo em que está interessado, exatamente como no emparelhamento básico.In order to implement custom pairing, you will need to obtain the DeviceInformation object for the device you are interested in, just like with basic pairing. Contudo, a propriedade específica em que você está interessado é DeviceInformation.Pairing.Custom.However, the specific property your are interested in is DeviceInformation.Pairing.Custom. Isso lhe dará um objeto DeviceInformationCustomPairing.This will give you a DeviceInformationCustomPairing object. Todos os métodos DeviceInformationCustomPairing.PairAsync exigem que você inclua um parâmetro DevicePairingKinds.All of the DeviceInformationCustomPairing.PairAsync methods require you to include a DevicePairingKinds parameter. Isso indica as ações que o usuário precisará tomar para tentar emparelhar o dispositivo.This indicates the actions that the user will need to take in order to attempt to pair the device. Consulte a página de referência DevicePairingKinds para obter mais informações sobre os diferentes tipos e quais ações o usuário precisará tomar.See the DevicePairingKinds reference page for more information about the different kinds and what actions the user will need to take. Assim como com o emparelhamento básico, você precisará esperar o resultado para dar a seu aplicativo tempo para tentar completar a ação de emparelhamento.Just like with basic pairing, you will need to await the result in order to give your app time to attempt to complete the pairing action. O resultado da ação de emparelhamento será retornado e, desde que nenhum erro seja retornado, o dispositivo será emparelhado.The result of the pairing action will be returned, and as long as no errors are returned, the device will be paired.

Para dar suporte ao emparelhamento personalizado, você precisará criar um manipulador para o evento PairingRequested.To support custom pairing, you will need to create a handler for the PairingRequested event. É preciso garantir que esse manipulador será levado em consideração para todos os diferentes DevicePairingKinds que podem ser usados em uma situação de emparelhamento personalizado.This handler needs to make sure to account for all the different DevicePairingKinds that might be used in a custom pairing scenario. A ação adequada a ser tomada dependerá do DevicePairingKinds fornecido como parte dos argumentos de evento.The appropriate action to take will depend on the DevicePairingKinds provided as part of the event arguments.

É importante estar ciente de que o emparelhamento personalizado é sempre uma operação a nível de sistema.It is important to be aware that custom pairing is always a system-level operation. Por isso, quando você estiver operando em um desktop ou Windows Phone, um diálogo de sistema sempre será exibido para o usuário quando o emparelhamento for acontecer.Because of this, when you are operating on Desktop or Windows Phone, a system dialog will always be shown to the user when pairing is going to happen. Isso ocorre porque ambas as plataformas possuem uma experiência de usuário que requer o consentimento do usuário.This is because both of those platforms posses a user experience that requires user consent. Como esse diálogo é gerado automaticamente, você não precisará criar seu próprio diálogo quando for optar por um DevicePairingKinds de ConfirmOnly quando estiver operando nessas plataformas.Since that dialog is automatically generated, you will not need to create your own dialog when you are opting for a DevicePairingKinds of ConfirmOnly when operating on these platforms. Para os outros DevicePairingKinds, você precisará realizar algumas interações especiais, dependendo do valor DevicePairingKinds específico.For the other DevicePairingKinds, you will need to perform some special handling depending on the specific DevicePairingKinds value. Veja os exemplos de amostra de como manipular o emparelhamento personalizado para valores DevicePairingKinds.See the sample for examples of how to handle custom pairing for different DevicePairingKinds values.

A partir do Windows 10, versão 1903, há suporte para um novo DevicePairingKinds , ProvidePasswordCredential.Starting with Windows 10, version 1903, a new DevicePairingKinds is supported, ProvidePasswordCredential. Esse valor significa que o aplicativo deve solicitar um nome de usuário e senha do usuário para autenticar com o dispositivo emparelhado.This value means that the app must request a user name and password from the user in order to authenticate with the paired device. Para lidar com esse caso, chame o método AcceptWithPasswordCredential dos args de evento do manipulador de eventos PairingRequested para aceitar o emparelhamento.To handle this case, call the AcceptWithPasswordCredential method of the event args of the PairingRequested event handler to accept the pairing. Passe um objeto PasswordCredential que encapsula o nome de usuário e a senha como um parâmetro.Pass in a PasswordCredential object that encapsulates the user name and password as a parameter. Observe que o nome de usuário e a senha do dispositivo remoto são distintos e, muitas vezes, não são iguais às credenciais do usuário conectado localmente.Note that the username and password for the remote device are distinct from and often not the same as the credentials for the locally signed-in user.

DesemparelhandoUnpairing

Desemparelhar um dispositivo só é relevante nas situações de emparelhamento básico ou personalizado descritas acima.Unpairing a device is only relevant in the basic or custom pairing scenarios described above. Se você estiver usando o emparelhamento automático, o aplicativo permanecerá indiferente ao status de emparelhamento do dispositivo e não será necessário desemparelhá-lo.If you are using automatic pairing, your app remains oblivious to the pairing status of the device and there is no need to unpair it. Se você optar por desemparelhar um dispositivo, o processo será idêntico se você implementar o emparelhamento básico ou personalizado.If you do choose to unpair a device, the process is identical whether you implement basic or custom pairing. Isso porque não é preciso fornecer informações adicionais ou interagir no processo de desemparelhamento.This is because there is no need to provide additional information or interact in the unpairing process.

O primeiro passo para desemparelhar um dispositivo é obter o objeto DeviceInformation para o dispositivo que você quer desemparelhar.The first step to unpairing a device is obtaining the DeviceInformation object for the device that you want to unpair. Em seguida, você precisa recuperar a propriedade DeviceInformation.Pairing e chamar DeviceInformationPairing.UnpairAsync.Then you need to retrieve the DeviceInformation.Pairing property and call DeviceInformationPairing.UnpairAsync. Assim como com o emparelhamento, é bom esperar o resultado.Just like with pairing, you will want to await the result. O resultado da ação de desemparelhamento será retornado e, desde que nenhum erro seja retornado, o dispositivo será desemparelhado.The result of the unpairing action will be returned, and as long as no errors are returned, the device will be unpaired.

AmostraSample

Para baixar uma amostra de como usar as APIs Windows.Devices.Enumeration, clique aqui.To download a sample showing how to use the Windows.Devices.Enumeration APIs, click here.