Koppeln von GerätenPair devices

Wichtige APIsImportant APIs

Einige Geräte müssen gekoppelt werden, bevor sie verwendet werden können.Some devices need to be paired before they can be used. Der Windows.Devices.Enumeration-Namespace unterstützt drei verschiedene Verfahren zum Koppeln von Geräten:The Windows.Devices.Enumeration namespace supports three different ways to pair devices.

  • Automatische KopplungAutomatic pairing
  • Einfache KopplungBasic pairing
  • Benutzerdefinierte KopplungCustom pairing

Tipp  einige Geräte müssen nicht gekoppelt werden, damit Sie verwendet werden.Tip  Some devices do not need to be paired in order to be used. Dies wird im Abschnitt zur automatischen Kopplung behandelt.This is covered under the section on automatic pairing.

 

Automatische KopplungAutomatic pairing

Es kann vorkommen, dass sie in Ihrer Anwendung ein Gerät verwenden möchten, es dabei aber keine Rolle spielt, ob das Gerät gekoppelt ist.Sometimes you want to use a device in your application, but do not care whether or not the device is paired. Sie möchten lediglich die Funktionen des Geräts nutzen.You simply want to be able to use the functionality associated with a device. Wenn die App beispielsweise nur ein Bild einer Webcam erfassen soll, sind Sie meist nicht am Gerät selbst interessiert, sondern nur an der Erfassung des Bilds.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. Falls Geräte-APIs für das betreffende Gerät verfügbar sind, fällt das Szenario unter die automatische Kopplung.If there are device APIs available for the device you are interested in, this scenario would fall under automatic pairing.

Sie nutzen einfach die dem Gerät zugeordneten APIs, führen Aufrufe nach Bedarf durch und überlassen es dem System, sich um ggf. erforderliche Kopplungen zu kümmern.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. Einige Geräte müssen nicht gekoppelt werden, damit Sie Funktionen verwenden können.Some devices do not need to be paired in order for you to use their functionality. Falls das Gerät nicht gekoppelt werden muss, übernehmen die Geräte-APIs die Kopplung im Hintergrund, sodass Sie diese Funktionen nicht in Ihre App integrieren müssen.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. Ihre App verfügt hierbei über keinerlei Informationen darüber, ob ein Gerät gekoppelt ist oder sein muss, aber Sie können trotzdem auf das Gerät zugreifen und seine Funktionen nutzen.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.

Einfache KopplungBasic pairing

Bei einer einfachen Kopplung versucht Ihre Anwendung, das Geräte über die Windows.Devices.Enumeration-APIs zu koppeln.Basic pairing is when your application uses the Windows.Devices.Enumeration APIs in order to attempt to pair the device. In diesem Szenario wird der Kopplungsprozess von Windows durchgeführt und behandelt.In this scenario, you are letting Windows attempt the pairing process and handle it. Gegebenenfalls erforderliche Benutzerinteraktionen werden von Windows behandelt.If any user interaction is necessary, it will be handled by Windows. Die einfache Kopplung wird verwendet, wenn Sie ein Gerät koppeln möchten und keine relevante Geräte-API für den Versuch einer automatischen Kopplung vorhanden ist.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. Sie möchten lediglich das Gerät nutzen und müssen es zuvor koppeln.You just want to be able to use the device and need to pair with it first.

Zum Durchführen der einfachen Kopplung müssen Sie zuerst das DeviceInformation-Objekt für das betreffende Gerät abrufen.In order to attempt basic pairing, you first need to obtain the DeviceInformation object for the device you are interested in. Nach Erhalt dieses Objekts interagieren Sie mit der DeviceInformation.Pairing-Eigenschaft, bei der es sich um ein DeviceInformationPairing-Objekt handelt.Once you receive that object, you will interact with the DeviceInformation.Pairing property, which is a DeviceInformationPairing object. Rufen Sie einfach DeviceInformationPairing.PairAsync auf, um zu versuchen, die Kopplung durchzuführen.To attempt to pair, simply call DeviceInformationPairing.PairAsync. Sie müssen das Ergebnis abwarten (await), um der App Zeit für den Versuch zu geben, die Kopplungsaktion auszuführen.You will need to await the result in order to give your app time to attempt to complete the pairing action. Das Ergebnis der Kopplungsaktion wird zurückgegeben, und falls keine Fehler zurückgegeben werden, wird das Gerät gekoppelt.The result of the pairing action will be returned, and as long as no errors are returned, the device will be paired.

Bei Verwendung der einfachen Kopplung haben Sie außerdem Zugriff auf weitere Informationen zum Kopplungsstatus des Geräts.If you are using basic pairing, you also have access to additional information about the pairing status of the device. Beispielsweise kennen Sie den Kopplungsstatus (IsPaired) und wissen, ob das Gerät gekoppelt werden kann (CanPair).For example you know the pairing status (IsPaired) and whether the device can pair (CanPair). Dies sind beides Eigenschaften des DeviceInformationPairing-Objekts.Both of these are properties of the DeviceInformationPairing object. Bei Verwendung der automatischen Kopplung haben Sie nur dann Zugriff auf diese Informationen, wenn Sie das relevante DeviceInformation-Objekt abrufen.If you are using automatic pairing, you might not have access to this information unless you obtain the relevant DeviceInformation objects.

Benutzerdefinierte KopplungCustom pairing

Bei der benutzerdefinierten Kopplung kann Ihre App in den Kopplungsprozess einbezogen werden.Custom pairing enables your app to participate in the pairing process. So kann die App die DevicePairingKinds angeben, die für den Kopplungsprozess unterstützt werden.This allows your app to specify the DevicePairingKinds that are supported for the pairing process. Außerdem müssen Sie eine eigene Benutzeroberfläche für die bedarfsgerechte Interaktion mit dem Benutzer erstellen.You will also be responsible for creating your own user interface to interact with the user as needed. Verwenden Sie die benutzerdefinierte Kopplung, wenn die App etwas mehr Einfluss auf den Ablauf des Kopplungsvorgangs haben soll oder wenn Sie Ihre eigene Benutzeroberfläche für die Kopplung anzeigen möchten.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.

Zum Implementieren der benutzerdefinierten Kopplung müssen Sie wie bei der einfachen Kopplung das DeviceInformation-Objekt für das betreffende Gerät abrufen.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. Wichtig ist aber die spezielle DeviceInformation.Pairing.Custom-Eigenschaft.However, the specific property your are interested in is DeviceInformation.Pairing.Custom. Hierüber erhalten Sie ein DeviceInformationCustomPairing-Objekt.This will give you a DeviceInformationCustomPairing object. Alle DeviceInformationCustomPairing.PairAsync-Methoden erfordern die Einbindung eines DevicePairingKinds-Parameters.All of the DeviceInformationCustomPairing.PairAsync methods require you to include a DevicePairingKinds parameter. Hiermit werden die Aktionen angegeben, die vom Benutzer durchgeführt werden müssen, um die Kopplung des Geräts zu erreichen.This indicates the actions that the user will need to take in order to attempt to pair the device. Weitere Informationen zu den unterschiedlichen Arten und den Aktionen, die Benutzer ausführen müssen, finden Sie auf der Seite mit der DevicePairingKinds-Referenz.See the DevicePairingKinds reference page for more information about the different kinds and what actions the user will need to take. Ebenso wie bei der einfachen Kopplung müssen Sie das Ergebnis abwarten (await), um der App Zeit für die Durchführung der Kopplungsaktion zu geben.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. Das Ergebnis der Kopplungsaktion wird zurückgegeben, und falls keine Fehler zurückgegeben werden, wird das Gerät gekoppelt.The result of the pairing action will be returned, and as long as no errors are returned, the device will be paired.

Zum Unterstützen der benutzerdefinierten Kopplung müssen Sie einen Handler für das PairingRequested-Ereignis erstellen.To support custom pairing, you will need to create a handler for the PairingRequested event. Bei diesem Handler muss sichergestellt sein, dass alle unterschiedlichen DevicePairingKinds-Aufzählungen abgedeckt sind, die bei einem Szenario mit benutzerdefinierter Kopplung verwendet werden.This handler needs to make sure to account for all the different DevicePairingKinds that might be used in a custom pairing scenario. Welche Aktion jeweils die richtige ist, hängt von den DevicePairingKinds-Aufzählungen ab, die als Teil der Ereignisargumente bereitgestellt werden.The appropriate action to take will depend on the DevicePairingKinds provided as part of the event arguments.

Es ist wichtig, darauf zu achten, dass die benutzerdefinierte Kopplung immer ein Vorgang auf Systemebene ist.It is important to be aware that custom pairing is always a system-level operation. Aus diesem Grund wird dem Benutzer bei Vorgängen auf dem Desktop oder einem Windows Phone immer ein Systemdialogfeld angezeigt, wenn die Kopplung durchgeführt werden soll.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. Dies ist der Fall, weil beide Plattformen über eine Benutzeroberfläche verfügen, für die die Zustimmung durch den Benutzer erforderlich ist.This is because both of those platforms posses a user experience that requires user consent. Da dieses Dialogfeld automatisch generiert wird, müssen Sie kein eigenes Dialogfeld erstellen, wenn Sie bei Vorgängen auf diesen Plattformen für DevicePairingKinds die Option ConfirmOnly verwenden.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. Für die anderen DevicePairingKinds-Aufzählungen müssen Sie je nach DevicePairingKinds-Wert eine besondere Behandlung durchführen.For the other DevicePairingKinds, you will need to perform some special handling depending on the specific DevicePairingKinds value. Beispiele für die Behandlung der benutzerdefinierten Kopplung für unterschiedliche DevicePairingKinds-Werte finden Sie unter „Beispiel“.See the sample for examples of how to handle custom pairing for different DevicePairingKinds values.

Ab Windows 10, Version 1903 sein, ein neues DevicePairingKinds wird unterstützt, ProvidePasswordCredential.Starting with Windows 10, version 1903, a new DevicePairingKinds is supported, ProvidePasswordCredential. Dieser Wert bedeutet, dass die app einen Benutzernamen und ein Kennwort vom Benutzer anfordern muss, um mit dem gekoppelten Gerät zu authentifizieren.This value means that the app must request a user name and password from the user in order to authenticate with the paired device. Aufrufen, um diesen Fall zu behandeln, die AcceptWithPasswordCredential Methode der Ereignis-Args von der PairingRequested -Ereignishandler, die Kopplung zu akzeptieren.To handle this case, call the AcceptWithPasswordCredential method of the event args of the PairingRequested event handler to accept the pairing. Übergeben Sie einen PasswordCredential Objekt, das den Benutzernamen und das Kennwort als Parameter kapselt.Pass in a PasswordCredential object that encapsulates the user name and password as a parameter. Beachten Sie, dass Benutzername und Kennwort für das Remotegerät unterscheidet und häufig nicht dasselbe wie die Anmeldeinformationen für die lokal angemeldeten Benutzer.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.

EntkoppelnUnpairing

Das Entkoppeln eines Geräts ist nur für die oben beschriebene einfache und benutzerdefinierte Kopplung relevant.Unpairing a device is only relevant in the basic or custom pairing scenarios described above. Wenn Sie die automatische Kopplung verwenden, ist sich Ihre App des Kopplungsstatus des Geräts nicht bewusst, und es ist nicht erforderlich, eine Entkopplung durchzuführen.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. Falls Sie sich für die Entkopplung eines Geräts entscheiden, ist der Prozess für die Implementierung der einfachen und benutzerdefinierten Kopplung identisch.If you do choose to unpair a device, the process is identical whether you implement basic or custom pairing. Dies liegt daran, dass keine zusätzlichen Informationen angegeben werden müssen oder mit dem Entkopplungsprozess interagiert werden muss.This is because there is no need to provide additional information or interact in the unpairing process.

Der erste Schritt beim Entkoppeln eines Geräts ist das Abrufen des DeviceInformation-Objekts für das Gerät, das entkoppelt werden soll.The first step to unpairing a device is obtaining the DeviceInformation object for the device that you want to unpair. Anschließend müssen Sie die DeviceInformation.Pairing-Eigenschaft abrufen und DeviceInformationPairing.UnpairAsync aufrufen.Then you need to retrieve the DeviceInformation.Pairing property and call DeviceInformationPairing.UnpairAsync. Wie bei der Kopplung warten Sie wieder das Ergebnis ab (await).Just like with pairing, you will want to await the result. Das Ergebnis der Entkopplungsaktion wird zurückgegeben, und falls keine Fehler zurückgegeben werden, wird das Gerät entkoppelt.The result of the unpairing action will be returned, and as long as no errors are returned, the device will be unpaired.

BeispielSample

Wenn Sie ein Beispiel zur Verwendung der Windows.Devices.Enumeration-APIs herunterladen möchten, klicken Sie hier.To download a sample showing how to use the Windows.Devices.Enumeration APIs, click here.