Associare dispositivi
Il presente argomento descrive come associare i dispositivi usando lo spazio dei nomi Windows.Devices.Enumeration.
API importanti
Associazione automatica
A volte si desidera usare un dispositivo nell'applicazione, ma non importa se il dispositivo è associato o meno. Si desidera semplicemente essere in grado di usare la funzionalità associata a un dispositivo. Ad esempio, se l'app intende semplicemente acquisire un'immagine da una webcam, non si è necessariamente interessati al dispositivo stesso, ma solo all'acquisizione di immagini. Se sono disponibili API per il dispositivo a cui si è interessati, questo scenario rientra nell'abbinamento automatico.
In questo caso, si usano semplicemente le API associate al dispositivo, effettuando le chiamate in base alle esigenze e considerando attendibile il sistema per gestire qualsiasi associazione che potrebbe essere necessaria. Alcuni dispositivi non devono essere abbinati per poter usare le relative funzionalità. Se il dispositivo deve essere associato, le API del dispositivo gestiranno l'azione di abbinamento in background, quindi non è necessario integrare tale funzionalità nell'app. L'app non è in grado di sapere se un determinato dispositivo è abbinato o meno, ma è comunque in grado di accedere al dispositivo e di utilizzarne le funzionalità.
Abbinamento di base
L'abbinamento di base avviene quando l'applicazione usa le API Windows.Devices.Enumeration per tentare di associare il dispositivo. In questo scenario si consente a Windows di tentare il processo di abbinamento e gestirlo. Se è necessaria un'interazione dell'utente, verrà gestita da Windows. È consigliabile usare l'abbinamento di base se è necessario associare un dispositivo e non esiste un'API del dispositivo pertinente che tenterà l'abbinamento automatico. Si intende solo essere in grado di usare il dispositivo ed è necessario abbinarlo per primo.
Per tentare l'associazione di base, è necessario in primo luogo ottenere l'oggetto DeviceInformation per il dispositivo a cui si è interessato. Dopo aver ricevuto l'oggetto, si interagirà con la proprietà DeviceInformation.Pairing, che è un oggetto DeviceInformationPairing. Per tentare l'abbinamento, basta richiamare DeviceInformationPairing.PairAsync. Dovrai attendere il risultato per dare alla propria app il tempo necessario per tentare di completare l'azione di abbinamento. Il risultato dell'azione di abbinamento verrà restituito e, purché non vengano restituiti errori, il dispositivo verrà abbinato.
Se si usa l'abbinamento di base, è anche possibile accedere a informazioni aggiuntive sullo stato di abbinamento del dispositivo. Ad esempio, si conosce lo stato di abbinamento (IsPaired) e se il dispositivo può abbinare (CanPair). Entrambe sono proprietà dell'oggetto DeviceInformationPairing . Se si usa l'abbinamento automatico, si potrebbe non avere accesso a queste informazioni a meno che non si ottengano gli oggetti DeviceInformation.
Abbinamento personalizzato
L'abbinamento personalizzato consente all'app di partecipare al processo di abbinamento. Ciò consente all'app di specificare i DevicePairingKinds supportati per il processo di abbinamento. Si occuperà anche di creare un'interfaccia utente personalizzata per interagire con l'utente in base alle esigenze. Utilizzare l'abbinamento personalizzato quando si desidera che l'applicazione abbia una maggiore influenza sulle modalità di esecuzione del processo di abbinamento o per visualizzare la propria interfaccia utente di abbinamento.
Per implementare l'abbinamento personalizzato, sarà necessario ottenere l'oggetto DeviceInformation per il dispositivo a cui si è interessato, proprio come con l'abbinamento di base. Tuttavia, la proprietà specifica a cui si è interessati si trova in DeviceInformation.Pairing.Custom. In questo modo verrà visualizzato un oggetto DeviceInformationCustomPairing. Tutti i metodi DeviceInformationCustomPairing.PairAsync richiedono di includere un parametro DevicePairingKinds. Ciò Indica le azioni che l'utente dovrà eseguire per tentare di abbinare il dispositivo. Per altre informazioni sui diversi tipi e sulle azioni che l'utente dovrà eseguire, vedere la pagina di riferimento di DevicePairingKinds. Proprio come con l'abbinamento di base, sarà necessario attendere il risultato per dare all'app il tempo necessario per tentare di completare l'azione di abbinamento. Il risultato dell'azione di abbinamento verrà restituito e, purché non vengano restituiti errori, il dispositivo verrà abbinato.
Per supportare l'abbinamento personalizzato, è necessario creare un gestore per l'evento PairingRequested. Questo gestore deve assicurarsi di tenere conto di tutti i diversi DevicePairingKinds che potrebbero essere usati in uno scenario di abbinamento personalizzato. L'azione appropriata da intraprendere dipenderà dai DevicePairingKinds forniti come parte degli argomenti dell'evento.
È importante tenere presente che l'abbinamento personalizzato è sempre un'operazione a livello di sistema. Per questo motivo, quando si opera su Desktop o Windows Phone, viene sempre mostrata una finestra di dialogo all'utente quando si esegue l'abbinamento. Ciò è dovuto al fatto che entrambe le piattaforme possiedono un'esperienza utente che richiede il consenso dell'utente. Poiché tale finestra di dialogo viene generata automaticamente, non sarà necessario creare una finestra di dialogo personalizzata quando si opta per DevicePairingKinds di ConfirmOnly quando si opera su queste piattaforme. Per gli altri DevicePairingKinds, sarà necessario eseguire una gestione speciale a seconda del valore specifico di DevicePairingKinds . Vedi l'esempio per esempi di come gestire l'abbinamento personalizzato per diversi valori di DevicePairingKinds .
A partire da Windows 10, versione 1903, è supportato un nuovo DevicePairingKinds , ProvidePasswordCredential. Questo valore significa che l'app deve richiedere un nome utente e una password all'utente per eseguire l'autenticazione con il dispositivo associato. Per gestire questo caso, richiamare il metodo AcceptWithPasswordCredential degli argomenti del gestore eventi PairingRequested per accettare l'abbinamento. Passare un oggetto PasswordCredential che incapsula il nome utente e la password come parametro. Si noti che il nome utente e la password per il dispositivo remoto sono distinti fra loro e spesso non corrispondono alle credenziali per l'utente connesso in locale.
Disabbinamento
Il disabbinamento di un dispositivo è rilevante solo negli scenari di associazione di base o personalizzati descritti in precedenza. Se si usa l'abbinamento automatico, l'app rimane obliviosa allo stato di abbinamento del dispositivo e non è necessario annullare l'abbinamento. Se si sceglie di annullare l'abbinamento di un dispositivo, il processo è identico se si implementa un abbinamento di base o personalizzato. Ciò è dovuto al fatto che non è necessario fornire informazioni aggiuntive o interagire nel processo di disabbinamento.
Il primo passaggio per annullare l'abbinamento di un dispositivo consiste nell'ottenere l'oggetto DeviceInformation per il dispositivo che si vuole annullare l'abbinamento. È quindi necessario recuperare la proprietà DeviceInformation.Pairing e richiamare DeviceInformationPairing.UnpairAsync. Proprio come con l'abbinamento, l'intento è quello di attendere il risultato. Il risultato dell'azione di disabbinamento verrà restituito e, finché non vengono riportati degli errori, il dispositivo verrà disabbinato.
Esempio
Per un esempio funzionante, si veda Enumerazione del dispositivo ed esempio di abbinamento su GitHub.