다음을 통해 공유


디바이스 페어링하기

이 항목은 Windows.Devices.Enumeration 네임스페이스를 사용하여 디바이스를 페어링하는 방법에 대해 설명합니다.

중요 API

자동 페어링

애플리케이션에서 디바이스를 사용하려고 하지만 디바이스의 페어링 여부는 신경 쓰지 않는 경우가 있습니다. 디바이스와 연결된 기능을 사용할 수 있기를 원합니다. 예를 들어 앱이 단순히 웹캠에서 이미지를 캡처하려는 경우 디바이스 자체, 이미지 캡처에만 관심이 있는 것은 아닙니다. 관심 있는 디바이스에 사용할 수 있는 디바이스 API가 있는 경우 이 시나리오는 자동 페어링에 해당합니다.

이 경우 디바이스와 연결된 API를 사용하여 필요에 따라 호출하고 시스템을 신뢰하여 필요할 수 있는 모든 페어링을 처리합니다. 일부 디바이스는 해당 기능을 사용하기 위해 페어링할 필요가 없습니다. 디바이스를 페어링해야 하는 경우 디바이스 API는 백그라운드에서 페어링 작업을 처리하므로 해당 기능을 앱에 통합할 필요가 없습니다. 앱은 지정된 디바이스가 페어링되어 있는지 아니면 페어링해야 하는지에 대해 알지 못하지만 디바이스에 액세스하고 해당 기능을 사용할 수 있습니다.

기본 페어링

기본 페어링은 애플리케이션이 디바이스 패어링을 시도하기 위해 Windows.Devices.Enumeration API를 사용하는 경우입니다. 이 시나리오에서는 Windows에서 페어링 프로세스를 시도하고 처리하도록 합니다. 사용자 상호 작용이 필요한 경우 Windows에서 처리됩니다. 디바이스와 페어링해야 하고 자동 페어링을 시도하는 관련 디바이스 API가 없는 경우 기본 페어링을 사용합니다. 디바이스를 사용할 수 있고 먼저 디바이스와 페어링해야 합니다.

기본 페어링을 시도하려면 먼저 관심 있는 디바이스에 대한 DeviceInformation 개체를 가져와야 합니다. 해당 개체를 받으면 DeviceInformationPairing 개체인 DeviceInformation.Pairing 속성과 상호 작용합니다. 페어링을 시도하려면 DeviceInformationPairing.PairAsync를 호출하기만 하면 됩니다. 앱에서 페어링 작업을 완료할 시간을 주기 위해 결과를 기다려야 합니다. 페어링 작업의 결과가 반환되고 오류가 반환되지 않는 한 디바이스가 페어링됩니다.

기본 페어링을 사용하는 경우 디바이스의 페어링 상태에 대한 추가 정보에 액세스할 수도 있습니다. 예를 들어 페어링 상태(IsPaired) 및 디바이스가 페어링할 수 있는지 여부(CanPair)를 알고 있습니다. 둘 다 DeviceInformationPairing 개체의 속성입니다. 자동 페어링을 사용하는 경우, 관련된 DeviceInformation 개체를 가져오지 않는 한 이 정보에 액세스할 수 없습니다.

사용자 지정 페어링

사용자 지정 페어링을 사용하면 앱이 페어링 프로세스에 참여할 수 있습니다. 이렇게 하면 앱에서 페어링 프로세스에 지원되는 DevicePairingKinds를 지정할 수 있습니다. 또한 필요에 따라 사용자와 상호 작용할 사용자 인터페이스를 만들 책임이 있습니다. 앱이 페어링 프로세스의 진행 방식에 좀 더 많은 영향을 주거나 고유한 페어링 사용자 인터페이스를 표시하도록 하려면 사용자 지정 페어링을 사용합니다.

사용자 지정 페어링을 구현하려면 기본 페어링과 마찬가지로 관심 있는 디바이스에 대한 DeviceInformation 개체를 가져와야 합니다. 그러나 관심 있는 특정 속성은 DeviceInformation.Pairing.Custom입니다. 그러면 DeviceInformationCustomPairing 개체가 표시됩니다. 모든 DeviceInformationCustomPairing.PairAsync 메서드를 사용하려면 DevicePairingKinds 매개 변수를 포함해야 합니다. 디바이스 페어링을 시도하기 위해 사용자가 수행해야 하는 작업을 나타냅니다. 다양한 종류 및 사용자가 수행해야 하는 작업에 대한 자세한 정보는 DevicePairingKinds 참조 페이지를 확인하세요. 기본 페어링과 마찬가지로 앱에서 페어링 작업을 완료할 시간을 주기 위해 결과를 기다려야 합니다. 페어링 작업의 결과가 반환되고 오류가 반환되지 않는 한 디바이스가 페어링됩니다.

사용자 지정 페어링을 지원하려면 PairingRequested 이벤트에 대한 처리기를 만들어야 합니다. 이 처리기는 사용자 지정 페어링 시나리오에서 사용할 수 있는 모든 다른 DevicePairingKinds를 고려해야 합니다. 수행할 적절한 작업은 이벤트 인수의 일부로 제공된 DevicePairingKinds에 따라 달라집니다.

사용자 지정 페어링은 항상 시스템 수준 작업이라는 점에 유의해야 합니다. 따라서 데스크톱 또는 Windows Phone에서 작업하는 경우, 페어링이 수행될 때 항상 시스템 대화 상자가 사용자에게 표시됩니다. 이는 두 플랫폼이 모두 사용자 동의가 필요한 사용자 환경을 소유하기 때문입니다. 해당 대화 상자는 자동으로 생성되므로 이러한 플랫폼에서 작동되는 경우, ConfirmOnlyDevicePairingKinds를 선택할 때 사용자 고유의 대화 상자를 만들 필요가 없습니다. 다른 DevicePairingKinds의 경우 특정 DevicePairingKinds 값에 따라 특별한 처리를 수행해야 합니다. 다양한 DevicePairingKinds 값에 대한 사용자 지정 페어링을 처리하는 방법에 대한 예시는 샘플을 참조하세요.

Windows 10 버전 1903부터 새 DevicePairingKindsProvidePasswordCredential이 지원됩니다. 이 값은 앱이 페어링된 디바이스로 인증하기 위해 사용자에게 사용자 이름과 암호를 요청해야 함을 의미합니다. 이 경우를 처리하려면 PairingRequested 이벤트 처리기의 이벤트 인수에 대한 AcceptWithPasswordCredential 메서드를 호출하여 페어링을 적용합니다. 사용자 이름 및 암호를 매개 변수로 캡슐화하는 PasswordCredential 개체를 전달합니다. 원격 디바이스에 대한 사용자 이름과 암호는 로컬로 로그인한 사용자의 자격 증명과는 다르며 종종 동일하지 않습니다.

페어링 해제

디바이스의 페어링을 해제하는 것은 위에서 설명한 기본 또는 사용자 지정 페어링 시나리오에서만 관련이 있습니다. 자동 페어링을 사용하는 경우 앱은 디바이스의 페어링 상태 다시 알지 기본 없으므로 앱의 페어링을 해제할 필요가 없습니다. 디바이스의 페어링을 해제하도록 선택하는 경우 기본 또는 사용자 지정 페어링을 구현하든 프로세스는 동일합니다. 이는 추가 정보를 제공하거나 페어링 해제 프로세스에서 상호 작용할 필요가 없기 때문입니다.

디바이스의 페어링을 해제하는 첫 번째 단계는 페어링을 해제하려는 디바이스에 대한 DeviceInformation 개체를 가져오는 것입니다. 그런 다음 DeviceInformation.Pairing 속성을 검색하고 DeviceInformationPairing.UnpairAsync를 호출해야 합니다. 페어링과 마찬가지로 결과를 기다리는 것이 좋습니다. 페어링 해제 작업의 결과가 반환되고 오류가 반환되지 않는 한 디바이스의 페어링이 해제됩니다.

예제

작업 샘플은 GitHub의 디바이스 열거형 및 페어링 샘플을 참조하세요.