Tento článek obsahuje odpovědi na nejčastější dotazy k rozhraní API Rozhraní Bluetooth WinRT.
Jaká rozhraní API používám? Bluetooth Classic (RFCOMM) nebo Bluetooth Low Energy (WTO)?
Na internetu se o tomto obecném tématu vedou různé diskuse, takže tuto odpověď omezme výhradně na rozdíl ve vztahu k Windows. Tady jsou některé obecné pokyny:
Bluetooth LE (Windows. Devices.Bluetooth.GenericAttributeProfile)
Při komunikaci se zařízením, které podporuje Bluetooth Low Energy, používejte rozhraní API GATT. Pokud váš případ použití není časté, nízká šířka pásma nebo vyžaduje nízkou energii, Bluetooth Low Energy je odpovědí. Hlavním oborem názvů, který tuto funkci zahrnuje, je Windows.Devices.Bluetooth.GenericAttributeProfile.
Pokud nepoužíváte Bluetooth LE
- Scénáře s vysokou šířkou pásma a vysokou frekvencí Pokud potřebujete neustále synchronizovat s velkými objemy dat, zvažte použití klasického Bluetooth nebo dokonce Wi-Fi.
Bluetooth Classic (Windows.Devices.Bluetooth.Rfcomm)
Rozhraní API RFCOMM poskytují vývojářům socket pro obousměrnou komunikaci ve stylu sériového portu. Jakmile máte k dispozici socket, metody pro zápis a čtení jsou poměrně standardní. Implementace je uvedena v ukázce Rfcomm Chat.
Kdy nepoužívat Bluetooth Rfcomm
- Oznámení. Protokol Bluetooth GATT má pro tento účel specifický příkaz, což povede k výrazně nižší spotřebě energie a rychlejší době odezvy.
- Kontrola blízkosti nebo detekce přítomnosti Lepší používat rozhraní API pro inzerci a připojovat se přes Bluetooth LE.
Proč zařízení Bluetooth LE přestane reagovat po odpojení?
K tomuto problému nejčastěji dochází proto, že vzdálené zařízení ztratilo informace o párování. Velký počet starších zařízení Bluetooth nevyžaduje ověřování. Aby bylo možné uživatele chránit, budou všechny párovací transakce provedené z nastavení Windows vyžadovat ověření a některá zařízení nebyla navržena s ohledem na to.
Počínaje Windows 10 verze 1511 mohou vývojáři řídit proces navázání párování. Ukázka výčtu a párování zařízení podrobně popisuje různé aspekty přidružení nových zařízení.
V tomto příkladu zahájíme párování se zařízením bez šifrování. Mějte na paměti, že to bude fungovat jenom v případě, že vzdálené zařízení nevyžaduje šifrování nebo ověřování.
// Get ceremony type and protection level selections
// You must select at least ConfirmOnly or the pairing attempt will fail
DevicePairingKinds ceremonySelected = DevicePairingKinds.ConfirmOnly;
// Workaround remote devices losing pairing information
DevicePairingProtectionLevel protectionLevel = DevicePairingProtectionLevel.None
DeviceInformationCustomPairing customPairing = deviceInfoDisp.DeviceInformation.Pairing.Custom;
// Declare an event handler - you don't need to do much in PairingRequestedHandler since the ceremony is "None"
customPairing.PairingRequested += PairingRequestedHandler;
DevicePairingResult result = await customPairing.PairAsync(ceremonySelected, protectionLevel);
Musím před použitím spárovat zařízení Bluetooth?
Před použitím zařízení nemusíte spárovat zařízení, pokud využíváte Bluetooth RFCOMM (classic). Od verze 1607 pro Windows 10 se můžete jednoduše dotazovat na nejbližší zařízení a připojit se k nim. Aktualizovaná ukázka chatu RFCOMM ukazuje tuto funkci.
(14393 a nižší) Tato funkce není k dispozici pro Bluetooth Low Energy (klient GATT), takže pro přístup k těmto zařízením je budete muset i nadále spárovat buď prostřednictvím stránky Nastavení, nebo pomocí rozhraní API Windows.Devices.Enumeration.
(15030 a vyšší) Párování zařízení Bluetooth už není potřeba. K dotazování aktuálního stavu vzdáleného zařízení použijte nová asynchronní rozhraní API, jako je GetGattServicesAsync a GetCharacteristicsAsync. Další podrobnosti najdete v dokumentaci klienta .
Kdy je potřeba zařízení spárovat, než s ním začnu komunikovat?
Obecně platí, že pokud potřebujete důvěryhodné dlouhodobé propojení se zařízením, spárujte se s ním buď přesměrováním uživatele na stránku Nastavení, nebo pomocí rozhraní API pro zjišťování a párování zařízení. Pokud jednoduše potřebujete číst informace ze zařízení, které je veřejně vystavené (senzor teploty nebo signál), připojte se k reklamám nebo naslouchejte, aniž byste se museli snažit spárovat se zařízením. To zabrání problémům s interoperabilitou v dlouhodobém horizontu, protože velký počet zařízení nepodporuje párování.
Podporují všechna zařízení s Windows periferní roli?
No. Jedná se o funkci závislá na hardwaru, ale poskytuje se metoda BluetoothAdapter.IsPeripheralRoleSupported pro dotazování, zda je podporována nebo ne. Aktuálně podporovaná zařízení zahrnují Windows Phone ve verzi 8992 nebo novější a RPi3 (Windows IoT).
Můžu k těmto rozhraním API přistupovat z Win32?
Ano, všechna tato rozhraní API by měla fungovat. Tento blog podrobně popisuje způsob volání rozhraní API systému Windows z desktopových aplikací.
Má tato funkce existovat u konkrétní skladové položky?
Bluetooth LE: Ano, všechny funkce jsou v OneCore a měly by být k dispozici na nejnovějších zařízeních s funkčním zásobníkem Bluetooth LE.
Upozornění: Periferní role je závislá na hardwaru a některé edice Windows Serveru nepodporují Bluetooth.
Bluetooth BR/EDR (Classic): Některé varianty existují, ale většinou mají velmi podobnou podporu na úrovni profilu. Podívejte se na dokumentaci k RFCOMM a na tento dokument o podporovaných profilech pro PC.