You are currently viewing Flutter Bluetooth

Flutter Bluetooth

In this piece we want to look at Flutter bluetooth examples and libraries. How to use these to scan and connect to bluetooth, be it classic or low energy.

(a). flutter_bluetooth_serial

A basic Flutter Bluetooth Serial.

This is a Flutter basic implementation for Classical Bluetooth. Here are it's features:

  • Adapter status monitoring,
  • Turning adapter on and off,
  • Opening settings,
  • Discovering devices (and requesting discoverability),
  • Listing bonded devices and pairing new ones,
  • Connecting to multiple devices at the same time,
  • Sending and recieving data (multiple connections).

This library supports only android.

Step 1: Install it

In your pubspec.yaml add dependency as follows:

dependencies:
    # ...
    flutter_bluetooth_serial: ^0.2.2

Then pub get it.

# With pub manager
pub get
# or with Flutter
flutter pub get

Step 2: Write Code

Start by importing the flutter_bluetooth_serial:

import 'package:flutter_bluetooth_serial/flutter_bluetooth_serial.dart';

Now create a try-catch block then establish a connection inside it:

try {
    BluetoothConnection connection = await BluetoothConnection.toAddress(address);
    print('Connected to the device');

You can then listen to incoming data:

    connection.input.listen((Uint8List data) {
        print('Data incoming: ${ascii.decode(data)}');

You can also send or output data:

        connection.output.add(data); // Sending data

You can also disconnect from the connection:

        if (ascii.decode(data).contains('!')) {
            connection.finish(); // Closing connection
            print('Disconnecting by local host');
        }
    }).onDone(() {
        print('Disconnected by remote request');
    });

Here's the full code:

try {
    BluetoothConnection connection = await BluetoothConnection.toAddress(address);
    print('Connected to the device');
    connection.input.listen((Uint8List data) {
        print('Data incoming: ${ascii.decode(data)}');
        connection.output.add(data); // Sending data
        if (ascii.decode(data).contains('!')) {
            connection.finish(); // Closing connection
            print('Disconnecting by local host');
        }
    }).onDone(() {
        print('Disconnected by remote request');
    });
}
catch (exception) {
    print('Cannot connect, exception occured');
}

Example

Find examples here

Reference

Find complete reference here

Leave a Reply