
Bluetooth Library for Android
Delphi and C++Builder Bluetooth library for Android.
- uses Android Bluetooth API
- supports BLE and BT Classic clients
- available for Delphi/C++Builder 10.4 - 12
- source code included in registered version
- royalty free distribution in applications
Order Bluetooth Library $120 USD (license for one developer)
Order Bluetooth Library multi-license $360 USD (license for all developers in company)
Order Bluetooth Library year upgrades $60 USD (registered users only)
Order Bluetooth Library year upgrades multi-license $180 USD (registered multi-license users only)
FAQ
How do I configure BLE scanning filters?
BluetoothAdapter.StartLeScan( TScanFilter.Create( ['Blood Pressure'], // devices ['51:6B:AF:DD:4C:D0'], // device addresses [ToGUID(TBluetoothGattService.BloodPressure)] // services ));
Why am I unable to connect to a BLE dual-mode device?
To ensure successful connection, set the Transport parameter to TTransport.LE in the ConnectGatt method:Device.ConnectGatt(SwitchAutoConnect.IsChecked, TTransport.LE);This explicitly selects the Low Energy (LE) transport, which is required for BLE communication with dual-mode devices.
Why doesn't the BLE barcode scanner trigger the OnCharacteristicChanged event?
This issue may occur if the MTU (Maximum Transmission Unit) size is not properly configured, which can prevent the device from sending notification packets correctly. To resolve it:- Request a higher MTU size before enabling notifications. A value of 247 bytes is commonly supported and sufficient for most BLE barcode scanners. Use the Device.Gatt.RequestMTU(247) method to initiate the MTU negotiation.
- Make sure this call is made before enabling notifications, and handle the TBluetoothDevice.OnMtuChanged event to confirm the negotiated MTU.
Device.Gatt.RequestMTU(247);