Compartir a través de


Emparejar dispositivos

En este tema se describe cómo emparejar dispositivos mediante el espacio de nombres Windows.Devices.Enumeration.

API importantes

Emparejamiento automático

A veces quiere usar un dispositivo en la aplicación, pero no le importa si el dispositivo está emparejado o no. Simplemente desea poder usar la funcionalidad asociada a un dispositivo. Por ejemplo, si la aplicación simplemente quiere capturar una imagen de una cámara web, no está necesariamente interesado en el propio dispositivo, solo la captura de imagen. Si hay API de dispositivo disponibles para el dispositivo en el que está interesado, este escenario caería en el emparejamiento automático.

En este caso, simplemente usa las API asociadas al dispositivo, realizando las llamadas según sea necesario y confiando en el sistema para controlar cualquier emparejamiento que pueda ser necesario. Algunos dispositivos no necesitan emparejarse para poder usar su funcionalidad. Si el dispositivo necesita emparejarse, las API de dispositivo controlarán la acción de emparejamiento en segundo plano para que no necesite integrar esa funcionalidad en la aplicación. La aplicación no tendrá conocimiento sobre si un dispositivo determinado está emparejado o no, pero todavía podrá acceder al dispositivo y usar su funcionalidad.

Emparejamiento básico

El emparejamiento básico es cuando la aplicación usa las API Windows.Devices.Enumeration para intentar emparejar el dispositivo. En este escenario, permite que Windows intente el proceso de emparejamiento y lo controle. Si es necesario realizar alguna interacción del usuario, Windows la controlará. Usaría el emparejamiento básico si necesita emparejar con un dispositivo y no hay una API de dispositivo relevante que intentará emparejar automáticamente. Solo quieres poder usar el dispositivo y tener que emparejarlo primero.

Para intentar el emparejamiento básico, primero debe obtener el objeto DeviceInformation para el dispositivo que le interesa. Una vez que reciba ese objeto, interactuará con la propiedad DeviceInformation.Pairing, que es un objeto DeviceInformationPairing. Para intentar emparejar, simplemente llame a DeviceInformationPairing.PairAsync. Tendrás que esperar el resultado para dar tiempo a la aplicación para intentar completar la acción de emparejamiento. El resultado de la acción de emparejamiento se devolverá y, siempre y cuando no se devuelva ningún error, el dispositivo se emparejará.

Si usa el emparejamiento básico, también tiene acceso a información adicional sobre el estado de emparejamiento del dispositivo. Por ejemplo, conoces el estado de emparejamiento (Is Pair) y si el dispositivo puede emparejar (CanPair). Ambas son propiedades del objeto DeviceInformationPairing. Si usa el emparejamiento automático, es posible que no tenga acceso a esta información a menos que obtenga los objetos DeviceInformation pertinentes.

Emparejamiento personalizado

El emparejamiento personalizado permite a la aplicación participar en el proceso de emparejamiento. Esto permite que la aplicación especifique devicePairingKinds compatible con el proceso de emparejamiento. También será responsable de crear su propia interfaz de usuario para interactuar con el usuario según sea necesario. Usa el emparejamiento personalizado cuando quieras que tu aplicación tenga un poco más influencia sobre cómo continúa el proceso de emparejamiento o para mostrar tu propia interfaz de usuario de emparejamiento.

Para implementar el emparejamiento personalizado, deberá obtener el objeto DeviceInformation para el dispositivo que le interese, al igual que con el emparejamiento básico. Sin embargo, la propiedad específica que le interesa es DeviceInformation.Pairing.Custom. Esto le proporcionará un objeto DeviceInformationCustomPairing. Todos los métodos DeviceInformationCustomPairing.PairAsync requieren que incluyas un parámetro DevicePairingKinds. Esto indica las acciones que el usuario tendrá que realizar para intentar emparejar el dispositivo. Consulte la página de referencia devicePairingKinds para obtener más información sobre los distintos tipos y las acciones que tendrá que realizar el usuario. Al igual que con el emparejamiento básico, tendrás que esperar el resultado para dar tiempo a la aplicación para intentar completar la acción de emparejamiento. El resultado de la acción de emparejamiento se devolverá y, siempre y cuando no se devuelva ningún error, el dispositivo se emparejará.

Para admitir el emparejamiento personalizado, deberá crear un controlador para el evento PairingRequested. Este controlador debe asegurarse de tener en cuenta todos los distintos DevicePairingKinds que se pueden usar en un escenario de emparejamiento personalizado. La acción adecuada que se debe realizar dependerá de devicePairingKinds proporcionada como parte de los argumentos del evento.

Es importante tener en cuenta que el emparejamiento personalizado siempre es una operación de nivel de sistema. Debido a esto, cuando se trabaja en escritorio o Windows Phone, siempre se mostrará un cuadro de diálogo del sistema al usuario cuando se produzca el emparejamiento. Esto se debe a que ambas plataformas presentan una experiencia de usuario que requiere consentimiento del usuario. Dado que ese cuadro de diálogo se genera automáticamente, no tendrá que crear su propio diálogo cuando opte por un DevicePairingKinds de ConfirmOnly cuando funcione en estas plataformas. Para el resto de DevicePairingKinds, deberá realizar algún control especial en función del valor de DevicePairingKinds específico. Consulte el ejemplo para obtener ejemplos de cómo controlar el emparejamiento personalizado para distintos valores de DevicePairingKinds .

A partir de Windows 10, versión 1903, se admite un nuevo DevicePairingKinds , ProvidePasswordCredential. Este valor significa que la aplicación debe solicitar un nombre de usuario y una contraseña del usuario para autenticarse con el dispositivo emparejado. Para controlar este caso, llame al método AcceptWithPasswordCredential de los argumentos de evento del controlador de eventos PairingRequested para aceptar el emparejamiento. Pase un objeto PasswordCredential que encapsula el nombre de usuario y la contraseña como parámetro. Tenga en cuenta que el nombre de usuario y la contraseña del dispositivo remoto son distintos de y a menudo no son los mismos que las credenciales del usuario que ha iniciado sesión localmente.

Desenlazamiento

El desapareamiento de un dispositivo solo es relevante en los escenarios de emparejamiento básico o personalizado descritos anteriormente. Si usas el emparejamiento automático, la aplicación permanece oculta al estado de emparejamiento del dispositivo y no es necesario deshacerlo. Si decide desaparejar un dispositivo, el proceso es idéntico si implementa el emparejamiento básico o personalizado. Esto se debe a que no es necesario proporcionar información adicional ni interactuar en el proceso de desapareamiento.

El primer paso para desaparejar un dispositivo es obtener el objeto DeviceInformation para el dispositivo que desea desaparejar. A continuación, debe recuperar la propiedad DeviceInformation.Pairing y llamar a DeviceInformationPairing.UnpairAsync. Al igual que con el emparejamiento, querrá esperar el resultado. El resultado de la acción de eliminación se devolverá y, siempre y cuando no se devuelva ningún error, el dispositivo se desapareará.

Ejemplo

Para obtener un ejemplo de trabajo, consulte enumeración de dispositivos y ejemplo de emparejamiento en GitHub.