配對裝置

本主題說明如何使用 Windows.Devices.Enumeration 命名空間來配對裝置。

自動配對

有時候你想在應用程式中使用某個裝置,但不在乎裝置是否已配對。 你只是想能夠使用裝置相關的功能。 舉例來說,如果你的應用程式只想從網路攝影機擷取影像,你不一定只在乎裝置本身,只在意影像擷取本身。 如果您感興趣的裝置有可用的 API,則此情況屬於自動配對。

在這種情況下,你只需使用與裝置相關的 API,根據需要進行呼叫,並信任系統處理任何必要的配對。 有些裝置不需要配對就能使用它們的功能。 如果裝置真的需要配對,裝置 API 會在幕後處理配對動作,所以你不需要把這些功能整合進你的應用程式。 你的應用程式不會知道某台裝置是否已配對或是否需要配對,但你仍能存取裝置並使用其功能。

基本配對

基本配對是指你的應用程式使用 Windows。Devices.Enumeration API 嘗試配對裝置。 在這種情況下,你讓 Windows 嘗試配對並處理。 若需要使用者互動,則由 Windows 自行處理。 如果你需要與裝置配對,且沒有會嘗試自動配對的相關裝置 API,你就會使用基本配對。 你只是想使用這個裝置,但需要先與其配對。

要嘗試基本配對,首先需要取得你感興趣裝置的 DeviceInformation物件。 一旦你收到該物件,你就會與 DeviceInformation.Pairing 屬性互動,這是一個 DeviceInformationPairing 物件。 嘗試配對時,只需呼叫 DeviceInformationPairing.PairAsync。 你需要 等待 結果,給應用程式時間嘗試完成配對動作。 配對動作的結果會被回傳,只要沒有錯誤回傳,裝置就會被配對。

如果你使用基本配對,也能取得關於裝置配對狀態的額外資訊。 例如,你知道配對狀態(IsPaired)以及裝置是否能配對(CanPair)。 這兩者都是 DeviceInformationPairing 物件的屬性。 如果你使用自動配對,除非取得相關的 DeviceInformation 物件,否則可能無法取得這些資訊。

自訂配對

自訂配對讓你的應用程式能參與配對過程。 這讓你的應用程式能指定支援配對流程的 DevicePairingKinds。 你也需自行建立使用者介面,以根據需要與使用者互動。 當你希望應用程式能對配對流程有更多影響力,或顯示你自己的配對使用者介面時,可以使用自訂配對。

為了實作自訂配對,你需要取得你感興趣裝置的 DeviceInformation 物件,就像基本配對一樣。 不過,你感興趣的具體屬性是 DeviceInformation.Pairing.Custom。 這會給你一個 DeviceInformationCustomPairing 物件。 所有 DeviceInformationCustomPairing.PairAsync 方法都要求你包含 DevicePairingKinds 參數。 這表示使用者需要採取的步驟,才能嘗試將裝置配對。 請參閱 DevicePairingKinds 參考頁面,了解不同類型及使用者需要採取的行動。 就像基本配對一樣,你需要 等待 結果,給應用程式時間嘗試完成配對動作。 配對動作的結果會被回傳,只要沒有錯誤回傳,裝置就會被配對。

若要支援自訂配對,您需要為 PairingRequested 事件建立處理常式。 這個處理常式必須確保將所有可能用於自訂配對情境的不同 DevicePairingKinds 納入考量。 應採取的適當動作將取決於作為事件引數一部分所提供的 DevicePairingKinds。

重要的是要注意,自訂配對始終是系統層級的操作。 在 Windows 桌面上,當要進行配對時,系統對話框一律會顯示以取得使用者同意。 由於該對話框是自動產生的,當您在桌面上選擇 DevicePairingKinds 為 ConfirmOnly 時,您不需要自行建立對話框。 對於其他 DevicePairingKinds,你需要根據特定的 DevicePairingKinds 值執行一些特殊處理。 請參閱範例,了解如何處理不同 DevicePairingKinds 值的自訂配對。

從 Windows 10 版本 1903 開始,支援新的 DevicePairingKinds,ProvidePasswordCredential。 這個數值表示應用程式必須向使用者索取使用者名稱和密碼,才能與配對裝置進行驗證。 處理此情況時,呼叫 PairingRequested 事件處理器事件 arg 中的 AcceptWithPasswordCredential 方法以接受配對。 傳入一個 PasswordCredential 物件,封裝使用者名稱和密碼作為參數。 請注意,遠端裝置的使用者名稱與密碼不同,且通常與本地登入使用者的憑證不同。

解除配對

解除配對只適用於上述基本或自訂配對情境。 如果你使用自動配對,應用程式將無法得知該裝置的配對狀態,也不需要將其解除配對。 如果你選擇解除配對裝置,無論是實作基本配對還是自訂配對,流程都是一樣的。 這是因為在解配過程中不需要提供額外資訊或互動。

解除配對裝置的第一步是取得你想要解除配對的裝置的 DeviceInformation物件。 接著你需要取得 DeviceInformation.Pairing 屬性,並呼叫 DeviceInformationPairing.UnpairAsync。 就像配對時一樣,你也需要等候結果。 解除配對的結果會被回傳,只要沒有錯誤,裝置就會被解除配對。

Sample

有關工作樣本,請參閱GitHub上的 Device 列舉與配對樣本。