Bluetooth und Bluetooth Low Energy sind drahtlose Kommunikationsstandards für die Datenübertragung über kurze Entfernungen. Bluetooth Classic (BR/EDR) bietet einen stabilen Streaming-Kanal für Audio und Dateien, während BLE für den energieeffizienten Betrieb mit Sensoren und Peripheriegeräten optimiert ist. Laut Bluetooth SIG, 2025 werden jährlich über 5 Milliarden Geräte mit BLE-Unterstützung ausgeliefert — der Standard ist zur Grundlage von IoT, Wearables und mobilem Zubehör geworden.
Wichtige Punkte
Bluetooth ist ein drahtloser Personal Area Network (WPAN)-Standard, der im 2,4-GHz-ISM-Band arbeitet und für die Kommunikation von Geräten über Entfernungen von bis zu 100 Metern ausgelegt ist. Die IEEE-802.15.1-Spezifikation definiert die physikalische und die MAC-Schicht, während der Bluetooth-SIG-Stack Profile auf hoher Ebene für bestimmte Szenarien definiert: Audio-Headset (HSP), Dateiübertragung (OPP), Tastatureingabe (HID).
Der Standard hat sich seit Version 4.0 (2010) in zwei Zweige aufgeteilt: Bluetooth Classic (BR/EDR — Basic Rate / Enhanced Data Rate) und Bluetooth Low Energy (BLE, früher Bluetooth Smart). Classic ist für kontinuierliche Ströme ausgelegt — Audioanrufe, Musik, Dateien. BLE wurde für Anwendungen entwickelt, bei denen Daten in kurzen Paketen mit Pausen von mehreren zehn Sekunden oder Minuten übertragen werden — Herzfrequenzmesser, Tags, Temperatursensoren.
Laut Bluetooth SIG (2025) unterstützen 99 % der neuen Smartphones beide Versionen, und das BLE-Ökosystem umfasst mehr als 15 Profiltypen von Blood Pressure bis Environmental Sensing.
Die Wahl zwischen Classic und BLE hängt vom Szenario ab: Für Audio-Streaming ist nur Classic geeignet, für das Abfragen eines Sensors einmal pro Stunde — nur BLE. BR/EDR verwendet 79 Kanäle mit 1 MHz Abstand und adaptives Frequenzsprungverfahren (AFH), das Widerstandsfähigkeit gegen Wi-Fi-Störungen bietet.
| Parameter | Bluetooth Classic (BR/EDR) | Bluetooth Low Energy (BLE) |
|---|---|---|
| Datenrate | 1–3 Mbit/s (EDR) | 125 kbit/s – 2 Mbit/s (LE 2M PHY) |
| Spitzenstrom | 10–30 mA | 5–15 mA |
| Sendezeit | ~100 ms | ~3 ms |
| Topologie | Piconet (1 Master, bis zu 7 Slaves) | Broadcaster / Observer / Peripheral / Central |
| Profile | HFP, A2DP, HSP, SPP, OPP | GATT-basiert (HRS, BLS, CTS usw.) |
| Typische Geräte | Headsets, Lautsprecher, Freisprecheinrichtung im Auto | Fitness-Tracker, Tags, Herzfrequenzmesser, IoT-Sensoren |
| Kompatibilität | Nicht kompatibel mit BLE auf physikalischer Ebene | Dual-Mode-Chips unterstützen beide Stacks |
BLE 5.x hat LE Coded PHY für eine größere Reichweite von bis zu 1 km (im Freien) und LE Audio mit LC3-Codec hinzugefügt — die neue Version verwischt allmählich die Grenze zwischen Classic und BLE für Audio-Szenarien.
Der BLE-Stack ist in drei Schichten unterteilt: Controller (physikalische und Verbindungsschicht), Host (L2CAP, ATT, GATT, Security Manager) und Application (Profilimplementierung in der App). Diese Trennung ermöglicht es dem Chip-Hersteller, den Controller in der Firmware zu implementieren, während der Mobile-App-Entwickler nur mit GATT-Abstraktionen arbeitet.
Die Verbindungsschicht (LL) verwaltet die Sendezeit: Das Gerät wechselt zwischen den Zuständen Standby, Advertising, Scanning, Initiating und Connection. Im verbundenen Zustand einigen sich Central und Peripheral auf ein Verbindungsintervall — die Häufigkeit, mit der sie Datenpakete austauschen. Ein typisches Intervall beträgt 7,5–1000 ms; je häufiger der Austausch, desto höher der Durchsatz und desto größer der Stromverbrauch.
Der Security Manager (SM) implementiert AES-128-Verschlüsselung mit Schlüsselaustausch über das Pairing-Protokoll. Es gibt drei Modi: Just Works (ohne PIN-Eingabe), Passkey Entry (6-stelliger Code auf dem Bildschirm) und OOB (NFC oder QR). Für Wearables wird normalerweise Just Works verwendet, für medizinische Geräte OOB mit zusätzlicher Verifizierung.
Laut Bluetooth Core Specification 5.4 (2023) überschreitet die Einrichtungszeit einer sicheren Verbindung im LE Secure Connections-Modus bei einem Verbindungsintervall von 30 ms nicht 300 ms.
Das ATT (Attributprotokoll) ist das grundlegende Transportmodell, bei dem der Server (Peripheriegerät) Attribute speichert und der Client (Smartphone) sie liest oder schreibt. GATT (Generic Attribute Profile) baut eine Hierarchie über ATT auf: Service → Characteristic → Descriptor.
Jeder Dienst ist eine logische Gruppe von Eigenschaften, die eine Gerätefunktion beschreiben: Heart Rate Service (UUID 0x180D) enthält die Heart Rate Measurement-Eigenschaft (UUID 0x2A37) mit einem Client Characteristic Configuration-Deskriptor (0x2902), der Benachrichtigungen steuert. Der Mobile-App-Entwickler erhält die Liste der Dienste über discoverServices(), findet dann die gewünschte Eigenschaft per UUID und abonniert Benachrichtigungen.
BLE verwendet 16-Bit-UUIDs für standardisierte Bluetooth-SIG-Dienste und 128-Bit-UUIDs für kundenspezifische Herstellerdienste. Beispielsweise kann ein Tracker-Etui einen Dienst A000-… mit einer Eigenschaft zur Übertragung des Akkuladestands definieren.
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("Puls: $heartRate Schläge/min")
}
}
Im Beispiel findet die App den Heart Rate-Dienst anhand der standardmäßigen Bluetooth-SIG-UUID, ruft die Herzfrequenzmessungs-Eigenschaft ab und abonniert deren Benachrichtigungen — bei jeder Änderung der Herzfrequenz sendet das Peripheriegerät Daten ohne explizite Anfrage vom Central.
Advertising ist ein zentraler BLE-Mechanismus, bei dem ein Peripheral-Gerät periodisch Broadcast-Pakete (Advertising-PDUs) auf drei primären Kanälen (37, 38, 39) sendet. Das zentrale Gerät scannt diese Kanäle, empfängt Advertising-Daten und kann eine Verbindung initiieren.
Ein Advertising-Paket enthält bis zu 31 Byte Nutzdaten: Flags, TX-Leistungspegel, lokaler Name, Dienst-UUIDs, herstellerspezifische Daten. Dies reicht aus, um Sensorwerte ohne Verbindungsaufbau zu übertragen — Verbindungsloser Modus (Broadcaster-Typ). Für die kontinuierliche Datenübertragung (z. B. Temperatur einmal pro Minute) wird eine Verbindung mit einem Verbindungsintervall von bis zu 1000 ms verwendet.
Auf mobilen Plattformen wird das Scannen über startScan() (Android) oder scanForPeripherals() (iOS) gestartet. Die Filterung nach Dienst-UUID spart Energie, da nicht alle sichtbaren Geräte verarbeitet werden müssen — die App erhält nur für relevante Tags oder Sensoren einen Callback.
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("Gerät gefunden: \(name)")
}
}
}
Nach dem Erkennen eines Geräts ruft der Central connect() auf und übergibt das CBPeripheral-Objekt. Die Verbindungsparameter (Intervall, Latenz, Überwachungs-Timeout) werden auf der Verbindungsschicht ausgehandelt — der Entwickler verwaltet sie nicht direkt, kann sie aber über requestConnectionPriority auf Android beeinflussen.
Beide mobilen Plattstellen bieten native APIs für die Arbeit mit BLE. Core Bluetooth (iOS) verwendet einen Delegatenansatz: Der zentrale Manager initiiert Operationen, und das Peripherieobjekt meldet Ergebnisse über Delegatenmethoden. android.bluetooth (Android) ist auf Callback-Schnittstellen aufgebaut und unterstützt parallele GATT-Operationen mit mehreren Geräten.
Hauptunterschiede zwischen den Plattformen:
Laut Bluetooth-SIG-Tests (2024) beträgt die BLE-Verbindungszeit zwischen einem Smartphone und einem Fitness-Tracker im Durchschnitt 150–300 ms auf Android und 100–250 ms auf iOS — der Unterschied ist auf die Richtlinien zur Verwaltung des Funkmoduls zurückzuführen.
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;
}
}
}
}
Ein Flutter-Entwickler erhält eine einheitliche API-Schnittstelle; unter der Haube übersetzt flutter_blue_plus Aufrufe in natives android.bluetooth oder Core Bluetooth. Dieser Ansatz verkürzt die App-Entwicklungszeit für die Arbeit mit BLE-Peripherie auf beiden Plattformen.
Häufig gestellte Fragen
Bluetooth Classic (BR/EDR) ist für kontinuierliches Streaming ausgelegt — Audioanrufe, Musik, Dateiübertragung. BLE ist für kurze Datenpakete mit minimalem Stromverbrauch optimiert — Sensoren, Tags, Fitness-Tracker. Classic verbraucht 10–30 mA, BLE — 5–15 mA im Spitzenwert.
Auf physikalischer Ebene sind sie nicht kompatibel — unterschiedliche Modulation und Kanalbelegung. Die meisten modernen Chips sind jedoch Dual-Mode und implementieren beide Stacks. Ein Smartphone mit einem Dual-Mode-Chip kann gleichzeitig mit einem Classic-Headset und einem BLE-Tracker kommunizieren.
Das Verbindungsintervall ist die Zeit zwischen zwei Datenpaketen in einer bestehenden Verbindung. Der Wert reicht von 7,5 ms bis zu 4 Sekunden. Je kürzer das Intervall, desto höher der Durchsatz und desto größer der Stromverbrauch. Für einen Temperatursensor, der einmal pro Minute meldet, wird ein Intervall von 1000 ms verwendet.
Pairing ist der Prozess des Austauschs von Verschlüsselungsschlüsseln zwischen Central und Peripheral. BLE unterstützt drei Methoden: Just Works (ohne Bestätigung), Passkey Entry (PIN-Eingabe auf dem Bildschirm) und OOB (Austausch über NFC oder QR). Nach dem Pairing speichern die Geräte die Schlüssel (Bonding) und fordern bei späteren Verbindungen keine erneute Authentifizierung an.
Die häufigsten: Heart Rate Profile (0x180D) für Herzfrequenzmesser, Blood Pressure Profile (0x1810) für Blutdruckmessgeräte, Environmental Sensing (0x181A) für Temperatur- und Feuchtigkeitssensoren, Battery Service (0x180F) für den Ladezustand, Device Information (0x180A) für Modell und Seriennummer.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch