デバイスのペアリングPair devices

重要な APIImportant APIs

一部のデバイスは、使う前にペアリングする必要があります。Some devices need to be paired before they can be used. Windows.Devices.Enumeration 名前空間では、デバイスをペアリングするための 3 つの異なる方法がサポートされています。The Windows.Devices.Enumeration namespace supports three different ways to pair devices.

  • 自動ペアリングAutomatic pairing
  • 基本ペアリングBasic pairing
  • カスタム ペアリングCustom pairing

ヒント:   一部のデバイスを使用するためにはペアにする必要はありません。Tip  Some devices do not need to be paired in order to be used. これについては、自動ペアリングに関するセクションで説明します。This is covered under the section on automatic pairing.

 

自動ペアリングAutomatic pairing

アプリケーションでデバイスを使いたいが、デバイスがペアリングされているかどうかは重要でない場合があります。Sometimes you want to use a device in your application, but do not care whether or not the device is paired. 単に、デバイスに関連付けられている機能を使用できるようにする場合です。You simply want to be able to use the functionality associated with a device. たとえば、アプリで Web カメラからイメージをキャプチャするだけの場合、必ずしもデバイス自体ではなく、イメージのキャプチャだけが重要となります。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. 対象のデバイスで使用できるデバイス API がある場合は、自動ペアリングが該当します。If there are device APIs available for the device you are interested in, this scenario would fall under automatic pairing.

この場合は、単にデバイスに関連付けられている API を使い、必要に応じて呼び出しを行い、必要になる可能性のあるペアリングをシステムが処理することを信頼します。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. 機能を使うためにペアリングする必要がないデバイスもあります。Some devices do not need to be paired in order for you to use their functionality. デバイスをペアリングする必要がない場合、デバイス API はバックグラウンドでペアリング アクションを処理するため、アプリにその機能を統合する必要はありません。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. アプリには、特定のデバイスがペアリングされているかや、ペアリングする必要があるかどうかに関する情報がありませんが、それでもデバイスにアクセスし、その機能を使うことができます。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.

基本ペアリングBasic pairing

基本ペアリングは、アプリケーションがデバイスのペアリングを試行するために Windows.Devices.Enumeration API を使うときに行われます。Basic pairing is when your application uses the Windows.Devices.Enumeration APIs in order to attempt to pair the device. このシナリオでは、Windows にペアリングの試行とその処理を許可します。In this scenario, you are letting Windows attempt the pairing process and handle it. ユーザーの操作が必要な場合は、Windows によって処理されます。If any user interaction is necessary, it will be handled by Windows. また、デバイスのペアリングが必要な場合や、自動ペアリングを試行する、関連するデバイス API がない場合も、基本ペアリングを使用します。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. 単に、デバイスを使用できるようにする場合でも、最初にペアリングする必要があります。You just want to be able to use the device and need to pair with it first.

基本ペアリングを試行するためには、対象のデバイス用の DeviceInformation オブジェクトを最初に入手する必要があります。In order to attempt basic pairing, you first need to obtain the DeviceInformation object for the device you are interested in. オブジェクトを入手したら、DeviceInformation.Pairing プロパティを操作します。これは、DeviceInformationPairing オブジェクトです。Once you receive that object, you will interact with the DeviceInformation.Pairing property, which is a DeviceInformationPairing object. ペアリングを試みるには、DeviceInformationPairing.PairAsync を呼び出します。To attempt to pair, simply call DeviceInformationPairing.PairAsync. ペアリング アクションの完了を試みる時間をアプリに与えるために、結果を await する必要があります。You will need to await the result in order to give your app time to attempt to complete the pairing action. ペアリング アクションの結果が返され、エラーが返されない限り、デバイスはペアリングされます。The result of the pairing action will be returned, and as long as no errors are returned, the device will be paired.

基本ペアリングを使っている場合は、デバイスのペアリング状態に関する追加情報にもアクセスできます。If you are using basic pairing, you also have access to additional information about the pairing status of the device. たとえば、ペアリング状態 (IsPaired) と、デバイスがペアリングできるかどうか (CanPair) がわかります。For example you know the pairing status (IsPaired) and whether the device can pair (CanPair). これらはどちらも DeviceInformationPairing オブジェクトのプロパティです。Both of these are properties of the DeviceInformationPairing object. 自動ペアリングを使っている場合、該当する DeviceInformation オブジェクトを入手しない限り、この情報にアクセスできない可能性があります。If you are using automatic pairing, you might not have access to this information unless you obtain the relevant DeviceInformation objects.

カスタム ペアリングCustom pairing

カスタム ペアリングでは、アプリでペアリング プロセスを処理できます。Custom pairing enables your app to participate in the pairing process. これにより、アプリはペアリング プロセス用にサポートされている DevicePairingKinds を指定できます。This allows your app to specify the DevicePairingKinds that are supported for the pairing process. 必要に応じて、ユーザーと対話する独自のユーザー インターフェイスも作成します。You will also be responsible for creating your own user interface to interact with the user as needed. ペアリング プロセスの進行に対するアプリの影響を少し高めたり、独自のペアリング ユーザー インターフェイスを表示するときに、カスタム ペアリングを使います。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.

カスタム ペアリングを実装するためには、基本ペアリングと同じように、対象のデバイス用の DeviceInformation オブジェクトを入手する必要があります。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. ただし、重要な特定のプロパティは DeviceInformation.Pairing.Custom になります。However, the specific property your are interested in is DeviceInformation.Pairing.Custom. これにより、DeviceInformationCustomPairing オブジェクトを取得できます。This will give you a DeviceInformationCustomPairing object. すべての DeviceInformationCustomPairing.PairAsync メソッドでは、DevicePairingKinds パラメーターを含める必要があります。All of the DeviceInformationCustomPairing.PairAsync methods require you to include a DevicePairingKinds parameter. これは、デバイスのペアリングを試みるためにユーザーが必要とするアクションを示します。This indicates the actions that the user will need to take in order to attempt to pair the device. ユーザーが実行する必要があるアクションとその種類について詳しくは、DevicePairingKinds のリファレンス ページをご覧ください。See the DevicePairingKinds reference page for more information about the different kinds and what actions the user will need to take. 基本ペアリングと同様に、ペアリング アクションの完了を試みる時間をアプリに与えるために、結果を await する必要があります。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. ペアリング アクションの結果が返され、エラーが返されない限り、デバイスはペアリングされます。The result of the pairing action will be returned, and as long as no errors are returned, the device will be paired.

カスタム ペアリングをサポートするため、PairingRequested イベントのハンドラーを作成する必要があります。To support custom pairing, you will need to create a handler for the PairingRequested event. このハンドラーでは、カスタム ペアリング シナリオで使われる可能性のあるすべての異なる DevicePairingKinds を必ず考慮する必要があります。This handler needs to make sure to account for all the different DevicePairingKinds that might be used in a custom pairing scenario. 実行する適切なアクションは、イベント引数の一部として提供される DevicePairingKinds によって異なります。The appropriate action to take will depend on the DevicePairingKinds provided as part of the event arguments.

カスタム ペアリングは常にシステム レベルの操作であることを認識することが重要です。It is important to be aware that custom pairing is always a system-level operation. このため、デスクトップまたは Windows Phone を操作している場合、ペアリングが発生するときに、システム ダイアログが常にユーザーに表示されます。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. これは、これらの両方のプラットフォームが、ユーザーの同意を必要とするユーザー エクスペリエンスを発生させるためです。This is because both of those platforms posses a user experience that requires user consent. このダイアログは自動的に生成されるため、これらのプラットフォームを使用中に ConfirmOnlyDevicePairingKinds を選ぶ場合に、独自のダイアログを作る必要はありません。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. 他の DevicePairingKinds については、特定の DevicePairingKinds 値に応じて、いくつかの特別な処理を実行する必要があります。For the other DevicePairingKinds, you will need to perform some special handling depending on the specific DevicePairingKinds value. さまざまな DevicePairingKinds の値のカスタム ペアリングを処理する方法の例については、サンプルをご覧ください。See the sample for examples of how to handle custom pairing for different DevicePairingKinds values.

以降では、Windows 10、バージョンが 1903、新しいDevicePairingKindsはサポートされているProvidePasswordCredentialします。Starting with Windows 10, version 1903, a new DevicePairingKinds is supported, ProvidePasswordCredential. この値は、アプリケーションする必要がありますから要求するユーザー名とパスワードをユーザー ペアになっているデバイスで認証するためを意味します。This value means that the app must request a user name and password from the user in order to authenticate with the paired device. このケースを処理するために呼び出す、 AcceptWithPasswordCredential のイベント引数のメソッド、 PairingRequestedペアリングを許可するイベント ハンドラー。To handle this case, call the AcceptWithPasswordCredential method of the event args of the PairingRequested event handler to accept the pairing. 渡す、 PasswordCredential ユーザー名とパスワードをパラメーターとしてカプセル化するオブジェクト。Pass in a PasswordCredential object that encapsulates the user name and password as a parameter. ユーザー名とパスワードをリモート デバイスが異なることに注意してください。 多くの場合とは異なります、ローカルでサインインしているユーザーの資格情報とします。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.

ペアリング解除Unpairing

デバイスのペアリング解除が該当するのは、上記で説明した基本ペアリングまたはカスタム ペアリングのシナリオのみです。Unpairing a device is only relevant in the basic or custom pairing scenarios described above. 自動ペアリングを使っている場合、アプリはデバイスのペアリング状態を記憶しないため、ペアリング解除する必要はありません。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. それでもデバイスをペアリング解除する場合のプロセスは、実装するのが基本ペアリングまたはカスタム ペアリングかにかかわらず同じです。If you do choose to unpair a device, the process is identical whether you implement basic or custom pairing. これは、追加情報を提供したり、ペアリング解除プロセスにかかわったりする必要がないためです。This is because there is no need to provide additional information or interact in the unpairing process.

デバイスをペアリング解除する最初の手順は、ペアリング解除するデバイスの DeviceInformation オブジェクトを入手することです。The first step to unpairing a device is obtaining the DeviceInformation object for the device that you want to unpair. 次に、DeviceInformation.Pairing プロパティを取得し、DeviceInformationPairing.UnpairAsync を呼び出す必要があります。Then you need to retrieve the DeviceInformation.Pairing property and call DeviceInformationPairing.UnpairAsync. ペアリングと同様に、結果を await します。Just like with pairing, you will want to await the result. ペアリング解除アクションの結果が返され、エラーが返されない限り、デバイスはペアリング解除されます。The result of the unpairing action will be returned, and as long as no errors are returned, the device will be unpaired.

サンプルSample

Windows.Devices.Enumeration API の使い方を示すサンプルをダウンロードするには、ここをクリックしてください。To download a sample showing how to use the Windows.Devices.Enumeration APIs, click here.