Parkoppla enheter

I det här avsnittet beskrivs hur du parkopplar enheter med hjälp av Windows. Devices.Enumeration namnrymd.

Automatisk parkoppling

Ibland vill du använda en enhet i ditt program, men bry dig inte om enheten är parkopplad eller inte. Du vill bara kunna använda de funktioner som är associerade med en enhet. Om din app till exempel bara vill avbilda en bild från en webbkamera är du inte nödvändigtvis intresserad av själva enheten, bara bildinspelningen. Om det finns enhets-API:er tillgängliga för den enhet som du är intresserad av skulle det här scenariot omfattas av automatisk parkoppling.

I det här fallet använder du helt enkelt de API:er som är associerade med enheten, gör anropen efter behov och litar på att systemet hanterar alla parkopplingar som kan vara nödvändiga. Vissa enheter behöver inte kopplas ihop för att du ska kunna använda deras funktioner. Om enheten behöver parkopplas hanterar enhets-API:erna parkopplingsåtgärden i bakgrunden så att du inte behöver integrera den funktionen i din app. Din app har ingen kunskap om huruvida en viss enhet är parkopplad eller behöver vara det, men du kommer fortfarande att kunna komma åt enheten och använda dess funktioner.

Grundläggande ihopparning

Grundläggande parkoppling är när programmet använder Windows. Devices.Enumeration API:er för att försöka parkoppla enheten. I det här scenariot låter du Windows försöka parkopplingsprocessen och hantera den. Om någon användarinteraktion krävs hanteras den av Windows. Du skulle använda grundläggande parkoppling om du behöver parkoppla med en enhet och det inte finns något relevant enhets-API som försöker koppla automatiskt. Du vill bara kunna använda enheten och måste para ihop den först.

För att kunna prova grundläggande parkoppling måste du först hämta objektet DeviceInformation för den enhet som du är intresserad av. När du har fått objektet interagerar du med egenskapen DeviceInformation.Pairing , som är ett DeviceInformationPairing-objekt . Om du vill försöka parkoppla anropar du helt enkelt DeviceInformationPairing.PairAsync. Du måste invänta resultatet för att ge appen tid att försöka slutföra parkopplingsåtgärden. Resultatet av parkopplingsåtgärden returneras och så länge inga fel returneras parkopplas enheten.

Om du använder grundläggande parkoppling har du också åtkomst till ytterligare information om enhetens parkopplingsstatus. Du kan till exempel parkopplingsstatusen (IsPaired) och om enheten kan parkoppla (CanPair). Båda dessa är egenskaper för DeviceInformationPairing-objektet . Om du använder automatisk parkoppling kanske du inte har åtkomst till den här informationen om du inte får relevant EnhetSinformation objekt.

Anpassad parkoppling

Med anpassad parkoppling kan din app delta i parkopplingsprocessen. På så sätt kan din app ange DevicePairingKinds som stöds för parkopplingsprocessen. Du ansvarar också för att skapa ett eget användargränssnitt för att interagera med användaren efter behov. Använd anpassad parkoppling när du vill att din app ska ha lite mer inflytande över hur parkopplingsprocessen fortsätter eller för att visa ditt eget användargränssnitt för parkoppling.

För att implementera anpassad parkoppling måste du hämta objektet DeviceInformation för den enhet som du är intresserad av, precis som med grundläggande parkoppling. Den specifika egenskap som du är intresserad av är dock DeviceInformation.Pairing.Custom. Då får du ett DeviceInformationCustomPairing-objekt . Alla metoderna DeviceInformationCustomPairing.PairAsync kräver att du inkluderar parametern DevicePairingKinds. Detta anger de åtgärder som användaren måste vidta för att försöka parkoppla enheten. Mer information om de olika typerna och vilka åtgärder användaren behöver vidta finns på referenssidan DevicePairingKinds . Precis som med grundläggande parkoppling måste du invänta resultatet för att ge appen tid att försöka slutföra parkopplingsåtgärden. Resultatet av parkopplingsåtgärden returneras och så länge inga fel returneras parkopplas enheten.

För att stödja anpassad parkoppling måste du skapa en hanterare för händelsen PairingRequested . Den här hanteraren måste ta hänsyn till alla olika DevicePairingKinds som kan användas i ett anpassat parkopplingsscenario. Vilken åtgärd som ska vidtas beror på de DevicePairingKinds som tillhandahålls som en del av händelseargumenten.

Det är viktigt att vara medveten om att anpassad parkoppling alltid är en åtgärd på systemnivå. På grund av detta, när du arbetar på Desktop eller Windows Phone, visas alltid en systemdialogruta för användaren när parkopplingen ska ske. Detta beror på att båda dessa plattformar har en användarupplevelse som kräver användarmedgivande. Eftersom dialogrutan genereras automatiskt behöver du inte skapa en egen dialogruta när du väljer en DevicePairingKinds av ConfirmOnly när du arbetar på dessa plattformar. För de andra DevicePairingKinds måste du utföra viss särskild hantering beroende på det specifika DevicePairingKinds-värdet . I exemplet finns exempel på hur du hanterar anpassad parkoppling för olika DevicePairingKinds-värden .

Från och med Windows 10 version 1903 stöds en ny DevicePairingKindsProvidePasswordCredential. Det här värdet innebär att appen måste begära ett användarnamn och lösenord från användaren för att kunna autentisera med den kopplade enheten. För att hantera det här fallet anropar du metoden AcceptWithPasswordCredential för händelse args för händelsehanteraren PairingRequested för att acceptera parkopplingen. Skicka in ett PasswordCredential-objekt som kapslar in användarnamnet och lösenordet som en parameter. Observera att användarnamnet och lösenordet för fjärrenheten skiljer sig från och ofta inte är samma som autentiseringsuppgifterna för den lokalt inloggade användaren.

Obetalda

Att koppla bort parkopplingen för en enhet är endast relevant i de grundläggande eller anpassade scenarierna för parkoppling som beskrivs ovan. Om du använder automatisk parkoppling har appen ingen kännedom om huruvida enheten är parkopplad eller inte, och det finns inget behov av att avparkoppla den. Om du väljer att koppla från en enhet är processen identisk oavsett om du implementerar grundläggande eller anpassad parkoppling. Detta beror på att det inte finns något behov av att ange ytterligare information eller interagera under processen för att ta bort parkopplingen.

Det första steget för att ta bort en enhet är att hämta objektet DeviceInformation för den enhet som du vill ta bort. Sedan måste du hämta egenskapen DeviceInformation.Pairing och anropa DeviceInformationPairing.UnpairAsync. Precis som vid ihopparning vill du invänta resultatet. Resultatet av frånkopplingsåtgärden returneras, och om inga fel returneras kommer enheten att kopplas från.

Sample

Ett arbetsexempel finns i Enhetsuppräkning och parkopplingsexempel på GitHub.