flutter_blue 0.1.0 copy "flutter_blue: ^0.1.0" to clipboard
flutter_blue: ^0.1.0 copied to clipboard

outdatedDart 1 only

Bluetooth plugin for Flutter


FlutterBlue



Introduction #

FlutterBlue is a bluetooth plugin for Flutter, a new mobile SDK to help developers build modern apps for iOS and Android.

Cross-Platform Bluetooth LE #

FlutterBlue aims to offer the most from both platforms (iOS and Android).

Using the FlutterBlue instance, you can scan for and connect to nearby devices (BluetoothDevice). Once connected to a device, the BluetoothDevice object can discover services (BluetoothService), characteristics (BluetoothCharacteristic), and descriptors (BluetoothDescriptor). The BluetoothDevice object is then used to directly interact with characteristics and descriptors.

Usage #

Obtain an instance #

FlutterBlue flutterBlue = FlutterBlue.instance;

Scan for devices #

/// Start scanning
StreamSubscription scanSubscription = flutterBlue.startScan().listen((scanResult) {
    // do something with scan result
});

/// Stop scanning
flutterBlue.stopScan();

Connect to a device #

BluetoothDevice device = await flutterBlue.connect(scanResult.identifier);

Discover services #

List<BluetoothService> services = await device.discoverServices();
services.forEach((service) {
    // do something with service
});

Read and write characteristics #

// Reads all characteristics
var characteristics = service.characteristics;
for(BluetoothCharacteristic c in characteristics) {
    List<int> value = await device.readCharacteristic(c);
    print(value);
}

// Writes to a characteristic
await device.writeCharacteristic(c, [0x12, 0x34])

Read and write descriptors #

// Reads all descriptors
var descriptors = characteristic.descriptors;
for(BluetoothDescriptor d in descriptors) {
    List<int> value = await device.readDescriptor(d);
    print(value);
}

// Writes to a descriptor
await device.writeDescriptor(d, [0x12, 0x34])

Set notifications #

await device.setNotifyValue(characteristic, true);
device.onValueChanged(characteristic).listen((value) {
    // do something with new value
});

Reference #

FlutterBlue API #

Android iOS Description
startScan Starts a scan for Bluetooth Low Energy devices.
stopScan Stops a scan for Bluetooth Low Energy devices.
connect Establishes a connection to the Bluetooth Device.
cancelConnection Cancels a connection to the Bluetooth Device.
state Gets the current state of the Bluetooth Adapter.
onStateChanged Stream of state changes for the Bluetooth Adapter.

BluetoothDevice API #

Android iOS Description
discoverServices Discovers services offered by the remote device as well as their characteristics and descriptors.
services Gets a list of services. Requires that discoverServices() has completed.
readCharacteristic Retrieves the value of a specified characteristic.
readDescriptor Retrieves the value of a specified descriptor.
writeCharacteristic Writes the value of a characteristic.
writeDescriptor Writes the value of a descriptor.
setNotifyValue Sets notifications or indications for the value of a specified characteristic.
onValueChanged Notifies when the Bluetooth Characteristic's value has changed.
canSendWriteWithoutResponse Indicates whether the Bluetooth Device can send a write without response.
state Gets the current state of the Bluetooth Device.
onStateChanged Stream of state changes for the Bluetooth Device.