https://github.com/saadkhanjadoon/flutterble
A Flutter demo for Bluetooth Low Energy (BLE) that demonstrates device scanning, connections, and data transfer between Android devices, including smartphones and Android boxes.
https://github.com/saadkhanjadoon/flutterble
ble bluetooth bluetooth-low-energy flutter flutter-ble flutter-blue flutter-bluetooth flutter-bluetooth-serial
Last synced: 5 months ago
JSON representation
A Flutter demo for Bluetooth Low Energy (BLE) that demonstrates device scanning, connections, and data transfer between Android devices, including smartphones and Android boxes.
- Host: GitHub
- URL: https://github.com/saadkhanjadoon/flutterble
- Owner: SaadKhanJadoon
- Created: 2024-10-27T07:44:44.000Z (over 1 year ago)
- Default Branch: develop
- Last Pushed: 2024-10-27T09:24:34.000Z (over 1 year ago)
- Last Synced: 2025-02-12T23:43:54.267Z (over 1 year ago)
- Topics: ble, bluetooth, bluetooth-low-energy, flutter, flutter-ble, flutter-blue, flutter-bluetooth, flutter-bluetooth-serial
- Language: C++
- Homepage:
- Size: 430 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Flutter BLE Project
A Flutter demo for Bluetooth Low Energy (BLE) that enables device scanning, connections, and data transfer between Android devices, including smartphones and Android boxes.
## Features
- Scan for BLE devices.
- Establish secure and insecure RFCOMM connections.
- Manage connections and handle data transfer.
- Support for both smartphones and Android boxes.
## Installation
- **Clone the Repository**
```bash
git clone https://github.com/yourusername/flutter_ble_project.git
cd flutter_ble_project
```
- **Install Dependencies**
```bash
flutter pub get
```
- **Set Up Native Code.** Ensure that the AndroidManifest.xml includes necessary Bluetooth permissions and configurations.
## Usage
- **Run the App**
```bash
flutter run
```
- **Enable Bluetooth & Permissions.** The app will request permissions to enable Bluetooth. Grant them for full functionality.
- **Scanning for Devices.** Go to the device scanning screen and tap the "Refresh" button to discover nearby devices.
- **Connecting to a Device.** Tap on a listed device to establish a connection using insecure RFCOMM sockets.
- **Data Transfer.** Use the provided UI controls to send and receive data between devices.
## Problem Faced & Solution:
- **Physical Device Connection.** I faced issues with unstable connections when trying to connect physical Android devices using BLE. To resolve this, I used a combination of:
- `flutter_bluetooth_serial: ^0.4.0` for reliable classic Bluetooth connections.
- `flutter_blue_plus: ^1.32.8` for BLE support.
Using both packages together provided better compatibility and improved connection stability across devices.
## Permissions
Required permissions:
1. BLUETOOTH
2. BLUETOOTH_ADMIN
3. BLUETOOTH_SCAN
4. BLUETOOTH_CONNECT
5. ACCESS_FINE_LOCATION
Ensure these permissions are requested at runtime, especially on **Android 10 and above**.
## Contributing
Contributions are welcome! If you'd like to contribute:
- **Fork the repository**
- **Create a new branch** for your feature or bug fix.
- **Submit a pull request** with a detailed description of your changes.
## License
```bash
Copyright (C) 2023-2024 SaadKhan
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.