Freigeben über


Koppeln von Geräten

In diesem Thema wird beschrieben, wie Sie Geräte mit dem Windows.Devices.Enumeration-Namespace koppeln.

Wichtige APIs

Automatische Kopplung

Manchmal möchten Sie ein Gerät in Ihrer Anwendung verwenden, achten aber nicht darauf, ob das Gerät gekoppelt ist. Sie möchten einfach die Funktionalität verwenden können, die einem Gerät zugeordnet ist. Wenn Ihre App beispielsweise einfach ein Bild von einer Webcam erfassen möchte, interessieren Sie sich nicht unbedingt für das Gerät selbst, nur für die Bildaufnahme. Wenn Geräte-APIs für das gerät verfügbar sind, an dem Sie interessiert sind, würde dieses Szenario unter die automatische Kopplung fallen.

In diesem Fall verwenden Sie einfach die dem Gerät zugeordneten APIs, führen die Aufrufe nach Bedarf durch und vertrauen dem System, um eventuell erforderliche Kopplungen zu verarbeiten. Einige Geräte müssen nicht gekoppelt werden, damit Sie deren Funktionalität verwenden können. Wenn das Gerät gekoppelt werden muss, behandeln die Geräte-APIs die Kopplungsaktion hinter den Kulissen, sodass Sie diese Funktionalität nicht in Ihre App integrieren müssen. Ihre App hat keine Kenntnisse darüber, ob ein bestimmtes Gerät gekoppelt ist oder erforderlich ist. Sie können jedoch weiterhin auf das Gerät zugreifen und dessen Funktionalität verwenden.

Einfache Kopplung

Die einfache Kopplung erfolgt, wenn Ihre Anwendung die Windows.Devices.Enumeration-APIs verwendet, um zu versuchen, das Gerät zu koppeln. In diesem Szenario lassen Sie Windows den Kopplungsprozess versuchen und behandeln. Wenn eine Benutzerinteraktion erforderlich ist, wird sie von Windows behandelt. Sie würden die einfache Kopplung verwenden, wenn Sie mit einem Gerät koppeln müssen, und es gibt keine relevante Geräte-API, die die automatische Kopplung versucht. Sie möchten nur in der Lage sein, das Gerät zu verwenden und zuerst mit dem Gerät zu koppeln.

Um die grundlegende Kopplung zu versuchen, müssen Sie zuerst das DeviceInformation-Objekt für das gerät abrufen, an dem Sie interessiert sind. Sobald Sie dieses Objekt empfangen haben, interagieren Sie mit der DeviceInformation.Pairing-Eigenschaft, bei der es sich um ein DeviceInformationPairing-Objekt handelt. Rufen Sie zum Koppeln einfach DeviceInformationPairing.PairAsync auf. Sie müssen auf das Ergebnis warten , um Ihrer App Zeit zum Abschließen der Kopplungsaktion zu geben. Das Ergebnis der Kopplungsaktion wird zurückgegeben, und solange keine Fehler zurückgegeben werden, wird das Gerät gekoppelt.

Wenn Sie die einfache Kopplung verwenden, haben Sie auch Zugriff auf zusätzliche Informationen zum Kopplungsstatus des Geräts. Beispielsweise wissen Sie den Kopplungsstatus (IsPaired) und ob das Gerät gekoppelt werden kann (CanPair). Beide eigenschaften des DeviceInformationPairing-Objekts. Wenn Sie die automatische Kopplung verwenden, haben Sie möglicherweise keinen Zugriff auf diese Informationen, es sei denn, Sie erhalten die relevanten DeviceInformation-Objekte .

Benutzerdefinierte Kopplung

Mit der benutzerdefinierten Kopplung kann Ihre App am Kopplungsprozess teilnehmen. Auf diese Weise kann Ihre App die DevicePairingKinds angeben, die für den Kopplungsprozess unterstützt werden. Sie sind auch dafür verantwortlich, ihre eigene Benutzeroberfläche zu erstellen, um bei Bedarf mit dem Benutzer zu interagieren. Verwenden Sie benutzerdefinierte Kopplungen, wenn Ihre App etwas mehr Einfluss darauf haben soll, wie der Kopplungsprozess fortgesetzt wird oder wie Ihre eigene Kopplungs-Benutzeroberfläche angezeigt wird.

Um eine benutzerdefinierte Kopplung zu implementieren, müssen Sie das DeviceInformation-Objekt für das gewünschte Gerät abrufen, genau wie bei der einfachen Kopplung. Die spezifische Eigenschaft, die Sie interessieren, ist jedoch DeviceInformation.Pairing.Custom. Dadurch erhalten Sie ein DeviceInformationCustomPairing-Objekt. Alle DeviceInformationCustomPairing.PairAsync-Methoden erfordern, dass Sie einen DevicePairingKinds-Parameter einschließen. Dies gibt die Aktionen an, die der Benutzer ausführen muss, um zu versuchen, das Gerät zu koppeln. Weitere Informationen zu den verschiedenen Arten und zu den Aktionen, die der Benutzer ausführen muss, finden Sie auf der DevicePairingKinds-Referenzseite . Genau wie bei der einfachen Kopplung müssen Sie auf das Ergebnis warten , um Ihrer App Zeit zu geben, um zu versuchen, die Kopplungsaktion abzuschließen. Das Ergebnis der Kopplungsaktion wird zurückgegeben, und solange keine Fehler zurückgegeben werden, wird das Gerät gekoppelt.

Zur Unterstützung der benutzerdefinierten Kopplung müssen Sie einen Handler für das PairingRequested-Ereignis erstellen. Dieser Handler muss sicherstellen, dass alle verschiedenen DevicePairingKinds berücksichtigt werden, die in einem benutzerdefinierten Kopplungsszenario verwendet werden können. Die geeignete Aktion hängt von den DevicePairingKinds ab, die als Teil der Ereignisargumente bereitgestellt werden.

Es ist wichtig zu beachten, dass die benutzerdefinierte Kopplung immer ein Vorgang auf Systemebene ist. Aus diesem Grund wird dem Benutzer, wenn Sie auf Desktop oder Windows Phone arbeiten, immer ein Systemdialogfeld angezeigt, wenn die Kopplung erfolgt. Dies liegt daran, dass beide Plattformen eine Benutzererfahrung bieten, die die Zustimmung des Benutzers erfordert. Da dieses Dialogfeld automatisch generiert wird, müssen Sie kein eigenes Dialogfeld erstellen, wenn Sie sich für ein DevicePairingKinds of ConfirmOnly entscheiden, wenn Sie auf diesen Plattformen arbeiten. Für die anderen DevicePairingKinds müssen Sie je nach spezifischem DevicePairingKinds-Wert eine spezielle Behandlung durchführen. Im Beispiel finden Sie Beispiele für die Behandlung der benutzerdefinierten Kopplung für unterschiedliche DevicePairingKinds-Werte .

Ab Windows 10, Version 1903, wird ein neues DevicePairingKinds unterstützt, ProvidePasswordCredential. Dieser Wert bedeutet, dass die App einen Benutzernamen und ein Kennwort des Benutzers anfordern muss, um sich mit dem gekoppelten Gerät zu authentifizieren. Rufen Sie zum Behandeln dieses Falls die AcceptWithPasswordCredential-Methode der Ereignisargumente des PairingRequested-Ereignishandlers auf, um die Kopplung zu akzeptieren. Übergeben Sie ein PasswordCredential-Objekt , das den Benutzernamen und das Kennwort als Parameter kapselt. Beachten Sie, dass sich der Benutzername und das Kennwort für das Remotegerät unterscheiden und häufig nicht mit den Anmeldeinformationen für den lokal angemeldeten Benutzer identisch sind.

Entkoppeln

Das Entkoppeln eines Geräts ist nur in den oben beschriebenen grundlegenden oder benutzerdefinierten Kopplungsszenarien relevant. Wenn Sie die automatische Kopplung verwenden, bleibt Ihre App dem Kopplungsstatus des Geräts verborgen, und es ist nicht erforderlich, es zu entkoppeln. Wenn Sie sich für das Entkoppeln eines Geräts entscheiden, ist der Prozess identisch, unabhängig davon, ob Sie eine einfache oder benutzerdefinierte Kopplung implementieren. Dies liegt daran, dass keine zusätzlichen Informationen bereitgestellt oder im Entkoppelungsprozess interagiert werden müssen.

Der erste Schritt zum Entkoppeln eines Geräts ist das Abrufen des DeviceInformation-Objekts für das Gerät, das Sie entkoppeln möchten. Anschließend müssen Sie die DeviceInformation.Pairing-Eigenschaft abrufen und DeviceInformationPairing.UnpairAsync aufrufen. Genau wie bei der Kopplung sollten Sie auf das Ergebnis warten . Das Ergebnis der Entkopplungsaktion wird zurückgegeben, und solange keine Fehler zurückgegeben werden, wird das Gerät entkoppelt.

Beispiel

Ein funktionierendes Beispiel finden Sie unter " Device-Enumeration" und "Pairing"-Beispiel auf GitHub.