douglasjunior / Androidbluetoothlibrary
Licence: mit
A Library for easy implementation of Serial Bluetooth Classic and Low Energy on Android. π
Stars: β 171
Programming Languages
java
68154 projects - #9 most used programming language
Projects that are alternatives of or similar to Androidbluetoothlibrary
bluetooth-terminal
ES6 class for serial communication with your own Bluetooth Low Energy (Smart) devices
Stars: β 43 (-74.85%)
Mutual labels: serial, bluetooth, bluetooth-low-energy
Web Bluetooth Terminal
Progressive Web Application for serial communication with your own Bluetooth Low Energy (Smart) devices
Stars: β 130 (-23.98%)
Mutual labels: bluetooth-low-energy, serial, bluetooth
Bluetoothlinux
Pure Swift Linux Bluetooth Stack
Stars: β 149 (-12.87%)
Mutual labels: bluetooth-low-energy, bluetooth
Flutter reactive ble
Flutter library that handles BLE operations for multiple devices.
Stars: β 155 (-9.36%)
Mutual labels: bluetooth-low-energy, bluetooth
H Ble
Android Bleη±»εΊοΌεΊδΊεθ°οΌζ΄ι²ζη΄’γθΏζ₯γειγζ₯ζΆγζεΌθΏζ₯ηζ₯ε£οΌζ ιε
³εΏη»θζδ½ε³ε―θΏθ‘BleιδΏ‘γ
Stars: β 171 (+0%)
Mutual labels: bluetooth-low-energy, bluetooth
Blueborne Scanner
Bluetooth scanner for local devices that may be vulnerable to Blueborne exploit
Stars: β 125 (-26.9%)
Mutual labels: bluetooth-low-energy, bluetooth
Simplebluetoothlibrary
Android library for simplifying bluetooth usage.
Stars: β 131 (-23.39%)
Mutual labels: hacktoberfest, bluetooth
Node Ble
Bluetooth Low Energy (BLE) library written with pure Node.js (no bindings) - baked by Bluez via DBus
Stars: β 159 (-7.02%)
Mutual labels: bluetooth-low-energy, bluetooth
Blueteeth
A simple, lightweight library intended to take away some of the cruft and tediousness of using the Android BLE.
Stars: β 89 (-47.95%)
Mutual labels: bluetooth-low-energy, bluetooth
Airpodsbattery Monitor For Mac
Simple Widget to display your AirPods battery levels from the Mac Status bar
Stars: β 165 (-3.51%)
Mutual labels: bluetooth-low-energy, bluetooth
Angular Web Bluetooth
The missing Web Bluetooth module for Angular
Stars: β 164 (-4.09%)
Mutual labels: bluetooth-low-energy, bluetooth
Bluetoothkit
Easily communicate between iOS/OSX devices using BLE
Stars: β 2,027 (+1085.38%)
Mutual labels: bluetooth-low-energy, bluetooth
Lmbluetoothsdk
A library to make classic bluetooth or BLE easier to use in Android.
Stars: β 122 (-28.65%)
Mutual labels: bluetooth-low-energy, bluetooth
Ble.net
Cross-platform Bluetooth Low Energy (BLE) library for Android, iOS, and UWP
Stars: β 137 (-19.88%)
Mutual labels: bluetooth-low-energy, bluetooth
Nimble Arduino
A fork of the NimBLE library structured for compilation with Ardruino, designed for use with ESP32.
Stars: β 108 (-36.84%)
Mutual labels: bluetooth-low-energy, bluetooth
Johnny Five
JavaScript Robotics and IoT programming framework, developed at Bocoup.
Stars: β 12,498 (+7208.77%)
Mutual labels: serial, bluetooth
Blueswift
Swift framework for easy connection with Bluetooth peripherals.
Stars: β 88 (-48.54%)
Mutual labels: bluetooth-low-energy, bluetooth
Extendable
Blocks Based Bluetooth LE Connectivity framework for iOS/watchOS/tvOS/OSX. Quickly configure centrals & peripherals, perform read/write operations, and respond characteristic updates.
Stars: β 88 (-48.54%)
Mutual labels: bluetooth-low-energy, bluetooth
Bluetonium
Bluetooth mapping in Swift
Stars: β 159 (-7.02%)
Mutual labels: bluetooth-low-energy, bluetooth
AndroidBluetoothLibrary
A Library for easy implementation of Serial Bluetooth Classic and Low Energy on Android. π
- Bluetooth Classic working from Android 2.1 (API 7)
- Bluetooth Low Energy working from Android 4.3 (API 18)
Looking for React Native
version? See also react-native-easybluetooth-classic and react-native-easybluetooth-le
Use
Configuration
Bluetooth Classic
BluetoothConfiguration config = new BluetoothConfiguration();
config.context = getApplicationContext();
config.bluetoothServiceClass = BluetoothClassicService.class;
config.bufferSize = 1024;
config.characterDelimiter = '\n';
config.deviceName = "Your App Name";
config.callListenersInMainThread = true;
config.uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); // Required
BluetoothService.init(config);
Bluetooth Low Energy
BluetoothConfiguration config = new BluetoothConfiguration();
config.context = getApplicationContext();
config.bluetoothServiceClass = BluetoothLeService.class;
config.bufferSize = 1024;
config.characterDelimiter = '\n';
config.deviceName = "Your App Name";
config.callListenersInMainThread = true;
config.uuidService = UUID.fromString("e7810a71-73ae-499d-8c15-faa9aef0c3f2"); // Required
config.uuidCharacteristic = UUID.fromString("bef8d6c9-9c21-4c9e-b632-bd58c1009f9f"); // Required
config.transport = BluetoothDevice.TRANSPORT_LE; // Required for dual-mode devices
config.uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); // Used to filter found devices. Set null to find all devices.
BluetoothService.init(config);
Getting BluetoothService
BluetoothService service = BluetoothService.getDefaultInstance();
Scanning
service.setOnScanCallback(new BluetoothService.OnBluetoothScanCallback() {
@Override
public void onDeviceDiscovered(BluetoothDevice device, int rssi) {
}
@Override
public void onStartScan() {
}
@Override
public void onStopScan() {
}
});
service.startScan(); // See also service.stopScan();
Connecting
service.setOnEventCallback(new BluetoothService.OnBluetoothEventCallback() {
@Override
public void onDataRead(byte[] buffer, int length) {
}
@Override
public void onStatusChange(BluetoothStatus status) {
}
@Override
public void onDeviceName(String deviceName) {
}
@Override
public void onToast(String message) {
}
@Override
public void onDataWrite(byte[] buffer) {
}
});
service.connect(device); // See also service.disconnect();
Writing
BluetoothWriter writer = new BluetoothWriter(service);
writer.writeln("Your text here");
Complete example
See the sample project.
Download
-
Add it in your root build.gradle at the end of repositories:
allprojects { repositories { ... maven { url "https://jitpack.io" } } }
-
Add the dependency
2.1. Bluetooth Classic
dependencies { implementation 'com.github.douglasjunior.AndroidBluetoothLibrary:BluetoothClassicLibrary:0.3.5' }
2.2. Bluetooth Low Energy
dependencies { implementation 'com.github.douglasjunior.AndroidBluetoothLibrary:BluetoothLowEnergyLibrary:0.3.5' }
-
Add permission in
AndroidManifest.xml
<manifest ...>
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
...
</manifest>
Known issues
- Location needs to be enabled for Bluetooth Low Energy Scanning on Android 6.0 http://stackoverflow.com/a/33045489/2826279
Contribute
New features, bug fixes and improvements are welcome! For questions and suggestions use the issues.
Before submit your PR, run the gradle check.
./gradlew build connectedCheck
Licence
The MIT License (MIT)
Copyright (c) 2015 Douglas Nassif Roma Junior
See the full licence file.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].