Build BLE for Android targets without writing your own JNI bridge. This plugin gives you a clean, event-driven C# API for integrating BLE peripherals into production projects.
Its C# API architecture is simple and practical:
- BleClient handles initialization and queues BLE calls until the bridge is ready
- BleUnityCallbackReceiver receives Android callbacks from UnitySendMessage(...)
- BleRouter parses callback messages and raises Unity events
- BleDevice provides per-device methods for connection, notifications, GATT discovery, writes, and error handling
With this asset, you can:
- Scan for BLE devices
- Filter scans by device name
- Connect and disconnect by address
- Track connection state changes
- Discover GATT services and characteristics
- Enable and disable notifications
- Write characteristic data with or without response
- Request MTU changes
- Handle reconnect workflows
- Work with Unity-friendly global and per-device events
This plugin is a strong fit for wearables, microcontrollers, haptics, robotics, sensors, controllers, BLE accessories and other BLE peripherals.
It also includes useful production-focused behavior:
- Initialization retry logic
- Queued BLE operations before startup completes
- Global logging and error routing
- Cached device state by MAC address
- Safe no-op behavior outside Android runtime
Important notes:
- Android only
- Runtime Android BLE permissions must be handled by your project
- The current built-in scan helper focuses on partial-name filtering
- Includes a comprehensive example file to make integration easier and a documentation file explaining everything needed.