A Bluetooth és a Bluetooth Low Energy vezeték nélküli kommunikációs szabványok rövid távolságú adatátvitelre. A Bluetooth Classic (BR/EDR) stabil stream csatornát biztosít audio és fájlok számára, míg a BLE energiahatékony működésre van optimalizálva érzékelőkkel és perifériákkal. A Bluetooth SIG, 2025 adatai szerint évente több mint 5 milliárd BLE-támogatással rendelkező eszközt szállítanak — a szabvány az IoT, a viselhető elektronika és a mobil tartozékok alapjává vált.
Főbb pontok
Bluetooth — egy vezeték nélküli személyi hálózati (WPAN) szabvány, amely az ISM 2,4 GHz-es sávban működik és akár 100 méteres távolságban lévő eszközök közötti kommunikációra szolgál. Az IEEE 802.15.1 specifikáció meghatározza a fizikai és MAC réteget, a Bluetooth SIG verem pedig a magasabb szintű profilokat specifikus forgatókönyvekhez: audio headsetek (HSP), fájlátvitel (OPP), billentyűzetbemenet (HID).
A szabvány a 4.0-s verziótól (2010) két ágra szakadt: Bluetooth Classic (BR/EDR) és Bluetooth Low Energy (BLE, korábban Bluetooth Smart). A Classic folyamatos streamekhez — audio hívások, zene, fájlok. A BLE olyan alkalmazásokhoz készült, ahol az adatokat rövid csomagokban továbbítják tízes másodperces vagy perces szünetekkel — pulzusmérők, címkék, hőmérséklet-érzékelők.
A Bluetooth SIG (2025) szerint az új okostelefonok 99%-a támogatja mindkét verziót, és a BLE ökoszisztéma több mint 15 profil típust foglal magában a Blood Pressure-től az Environmental Sensing-ig.
A Classic és BLE közötti választás a forgatókönyvtől függ: audio streaminghez csak a Classic alkalmas, óránkénti érzékelő leolvasáshoz — csak a BLE. BR/EDR 79 csatornát használ 1 MHz-es lépéssel és adaptív frekvenciamodulációt (AFH), biztosítva a Wi-Fi interferenciával szembeni ellenállóképességet.
| Paraméter | Bluetooth Classic (BR/EDR) | Bluetooth Low Energy (BLE) |
|---|---|---|
| Adatátviteli sebesség | 1–3 Mbit/s (EDR) | 125 kbit/s – 2 Mbit/s (LE 2M PHY) |
| Csúcsáram | 10–30 mA | 5–15 mA |
| Adási idő | ~100 ms | ~3 ms |
| Topológia | Piconet (1 master, akár 7 slave) | Broadcaster / Observer / Peripheral / Central |
| Profilok | HFP, A2DP, HSP, SPP, OPP | GATT-alapú (HRS, BLS, STS stb.) |
| Tipikus eszközök | Headsetek, hangszórók, autós hands-free készletek | Fitness karkötők, címkék, pulzusmérők, IoT érzékelők |
| Kompatibilitás | Nem kompatibilis a BLE-vel fizikai szinten | Kétmodús chipek mindkét vermet támogatják |
A BLE 5.x hozzáadta az LE Coded PHY-t a hatótávolság 1 km-re növeléséhez (nyílt területen) és az LE Audio-t LC3 kodekkel — az új verzió fokozatosan elmossa a határt Classic és BLE között audio forgatókönyvekben.
A BLE verem három rétegre van osztva: Controller (fizikai és kapcsolati réteg), Host (L2CAP, ATT, GATT, Security Manager) és Application (profil megvalósítása az alkalmazásban). Ez a felosztás lehetővé teszi a chipgyártó számára a Controller firmware-ben történő megvalósítását, a mobilalkalmazás-fejlesztő számára pedig csak a GATT absztrakciókkal való munkát.
A Link Layer (LL) kezeli az adási időt: az eszköz átkapcsol a Standby, Advertising, Scanning, Initiating és Connection állapotok között. Connected állapotban a Central és Peripheral megállapodik a connection intervallumban — az adatcsomagok cseréjének gyakoriságában. Tipikus intervallum 7,5–1000 ms; minél gyakoribb a csere, annál magasabb a sávszélesség és az energiafogyasztás.
A Security Manager (SM) AES-128 titkosítást valósít meg kulcscserével a pairing protokollon keresztül. Három mód különböztethető meg: Just Works (PIN megadása nélkül), Passkey Entry (6 jegyű kód a képernyőn) és OOB (NFC vagy QR). Viselhető eszközökhöz általában Just Works, orvosi eszközökhöz pedig OOB használatos további ellenőrzéssel.
A Bluetooth Core Specification 5.4 (2023) szerint a biztonságos kapcsolat létrehozásának ideje LE Secure Connections módban nem haladja meg a 300 ms-ot 30 ms connection intervallum mellett.
Az ATT (Attribute Protocol) — alapvető szállítási modell, ahol a szerver (periféria eszköz) attribútumokat tárol, és az ügyfél (okostelefon) olvassa vagy írja azokat. A GATT (Generic Attribute Profile) hierarchiát épít az ATT-re: Service → Characteristic → Descriptor.
Minden szolgáltatás az eszköz egy funkcióját leíró jellemzők logikai csoportja: Heart Rate Service (UUID 0x180D) tartalmazza a Heart Rate Measurement jellemzőt (UUID 0x2A37) a Descriptor Client Characteristic Configuration (0x2902) leíróval, amely az értesítéseket kezeli. A mobilalkalmazás-fejlesztő megkapja a szolgáltatások listáját a discoverServices() segítségével, majd UUID alapján megtalálja a kívánt jellemzőt és feliratkozik az értesítésekre.
A BLE 16 bites UUID-t használ a szabványosított Bluetooth SIG szolgáltatásokhoz és 128 bites UUID-t a gyártó egyedi szolgáltatásaihoz. Például egy tracker tok definiálhatja az A000-… szolgáltatást egy jellemzővel a saját akkumulátora töltési szintjének továbbításához.
private val gattCallback = object BluetoothGattCallback() {
override fun onServicesDiscovered(
gatt: BluetoothGatt, status: Int
) {
val service = gatt.getService(UUID.fromString("0000180d-0000-1000-8000-00805f9b34fb"))
val char = service?.getCharacteristic(
UUID.fromString("00002a37-0000-1000-8000-00805f9b34fb")
)
gatt.setCharacteristicNotification(char, true)
}
override fun onCharacteristicChanged(
gatt: BluetoothGatt, char: BluetoothGattCharacteristic
) {
val heartRate = char.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT8, 1)
updateUi("Pulzus: $heartRate ütés/perc")
}
}
A példában az alkalmazás megtalálja a Heart Rate szolgáltatást a standard Bluetooth SIG UUID alapján, lekéri a pulzusmérés jellemzőt és feliratkozik az értesítéseire — minden pulzusváltozáskor a periféria eszköz adatokat küld a Central explicit kérése nélkül.
Advertising — a BLE kulcsmechanizmusa, ahol a Peripheral eszköz időszakosan műsorszóró csomagokat (advertising PDUs) küld három elsődleges csatornán (37, 38, 39). A központi eszköz szkenneli ezeket a csatornákat, fogadja az advertising adatokat és kezdeményezheti a kapcsolatot.
Az advertising csomag legfeljebb 31 bájt hasznos terhet tartalmaz: jelzők, TX teljesítményszint, helyi név, szolgáltatás UUID-k, gyártóspecifikus adatok. Ez elegendő érzékelő állapotának továbbításához kapcsolat létrehozása nélkül — Connectionless mód (Broadcaster típus). Folyamatos adattovábbításhoz (pl. hőmérséklet percenként) kapcsolatot használnak akár 1000 ms connection intervallummal.
Mobil platformon a szkennelés a startScan() (Android) vagy scanForPeripherals() (iOS) segítségével indul. A szolgáltatás UUID alapján történő szűrés energiát takarít meg — az alkalmazás csak a számára érdekes címkékről vagy érzékelőkről kap callback-et.
import CoreBluetooth
class ScannerViewController: UIViewController {
private var centralManager: CBCentralManager!
override func viewDidLoad() {
centralManager = CBCentralManager(
delegate: self, queue: nil
)
}
func centralManagerDidUpdateState(central: CBCentralManager) {
if central.state == .poweredOn {
centralManager.scanForPeripherals(
withServices: nil, options: nil
)
}
}
func centralManager(
central: CBCentralManager,
didDiscover peripheral: CBPeripheral,
advertisementData: [String : Any],
rssi RSSI: NSNumber
) {
if let name = advertisementData[CBAdvertisementDataLocalNameKey] {
print("Eszköz találva: \(name)")
}
}
}
Az eszköz észleése után a Central meghívja a connect()-et, átadva a CBPeripheral objektumot. A kapcsolat paramétereit (interval, latency, supervision timeout) a Link Layer szintjén egyeztetik — a fejlesztő nem kezeli őket közvetlenül, de befolyásolhatja a requestConnectionPriority segítségével Androidon.
Mindkét mobil platform natív API-t biztosít a BLE-vel való munkához. A Core Bluetooth (iOS) delegált megközelítést használ: a központi menedzser kezdeményezi a műveleteket, a periféria objektum pedig delegált metódusokon keresztül jelenti az eredményeket. Az android.bluetooth (Android) callback interfészekre épül és támogatja a párhuzamos GATT műveleteket több eszközzel.
Fő különbségek a platformok között:
A Bluetooth SIG tesztek (2024) szerint az okostelefon és fitness karkötő közötti BLE kapcsolat ideje átlagosan 150–300 ms Androidon és 100–250 ms iOS-en — a különbség a rádiómodul kezelési politikáiból adódik.
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
class BleService {
final FlutterBluePlus fbp = FlutterBluePlus();
Future<void> scanAndConnect(String deviceName) async {
await fbp.startScan(timeout: Duration(seconds: 15));
await for (final result in fbp.scanResults) {
if (result.device.advName == deviceName) {
await fbp.stopScan();
await result.device.connect();
break;
}
}
}
}
A Flutter fejlesztő egységes API interfészt kap, amely alatt a flutter_blue_plus lefordítja a hívásokat natív android.bluetooth vagy Core Bluetooth hívásokra. Ez a megközelítés csökkenti a BLE perifériákkal való munkára szolgáló alkalmazás fejlesztési idejét mindkét platformon.
Gyakran ismételt kérdések
A Bluetooth Classic (BR/EDR) folyamatos streaming továbbításra szolgál — audio hívások, zene, fájlátvitel. A BLE rövid adatcsomagokhoz van optimalizálva minimális energiafogyasztással — érzékelők, címkék, fitness követők. A Classic 10–30 mA-t, a BLE csúcson 5–15 mA-t fogyaszt.
Fizikai szinten nem kompatibilisek — eltérő moduláció és csatornatérkép. A modern chipek többsége azonban kétmodús (dual-mode) és mindkét vermet megvalósítja. A kétmodús chippel rendelkező okostelefon egyszerre kommunikálhat Classic headsettel és BLE követővel.
A connection interval a két adatcsomag közötti időintervallum egy létrehozott kapcsolatban. Az érték 7,5 ms-tól 4 másodpercig terjed. Minél kisebb az intervallum, annál magasabb a sávszélesség és az energiafogyasztás. Percenkénti hőmérséklet-érzékelőnél 1000 ms intervallumot használnak.
A pairing a titkosítási kulcsok cseréjének folyamata a Central és Peripheral között. A BLE három módszert támogat: Just Works (megerősítés nélkül), Passkey Entry (PIN megadása a képernyőn) és OOB (csere NFC-n vagy QR-en keresztül). A párosítás után az eszközök elmentik a kulcsokat (bonding) és újracsatlakozásnál nem kérnek újra hitelesítést.
A leggyakoribbak: Heart Rate Profile (0x180D) pulzusmérőkhöz, Blood Pressure Profile (0x1810) vérnyomásmérőkhöz, Environmental Sensing (0x181A) hőmérséklet és páratartalom érzékelőkhöz, Battery Service (0x180F) töltési szinthez, Device Information (0x180A) modellhez és sorozatszámhoz.
Összefoglaló
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is