easy-bluetooth-le
v1.0.4
Published
A Library for easy implementation of Serial Bluetooth Low Energy on React Native. 💙
Downloads
7
Maintainers
Readme
Easy Bluetooth Low Energy
A Library for easy implementation of Serial Bluetooth Low Energy on React Native. 💙
Looking for Bluetooth Classic? Look here.
Requirements
- React Native >= 0.40.0
- Android 4.3 (API 18)
- iOS soon...
Use
Configuration
import EasyBluetooth from 'easy-bluetooth-le';
...
var config = {
"uuidService": "e7810a71-73ae-499d-8c15-faa9aef0c3f2",
"uuidCharacteristic": "bef8d6c9-9c21-4c9e-b632-bd58c1009f9f",
"deviceName": "Bluetooth Example Project",
"bufferSize": 1024,
"characterDelimiter": "\n"
}
EasyBluetooth.init(config)
.then(function (config) {
console.log("config done!");
})
.catch(function (ex) {
console.warn(ex);
});
Scanning
EasyBluetooth.startScan()
.then(function (devices) {
console.log("all devices found:");
console.log(devices);
})
.catch(function (ex) {
console.warn(ex);
});
Connecting
EasyBluetooth.connect(device)
.then(() => {
console.log("Connected!");
})
.catch((ex) => {
console.warn(ex);
})
Writing
EasyBluetooth.writeln("Works in React Native!")
.then(() => {
console.log("Writing...")
})
.catch((ex) => {
console.warn(ex);
})
Events
componentWillMount() {
this.onDeviceFoundEvent = EasyBluetooth.addOnDeviceFoundListener(this.onDeviceFound.bind(this));
this.onStatusChangeEvent = EasyBluetooth.addOnStatusChangeListener(this.onStatusChange.bind(this));
this.onDataReadEvent = EasyBluetooth.addOnDataReadListener(this.onDataRead.bind(this));
this.onDeviceNameEvent = EasyBluetooth.addOnDeviceNameListener(this.onDeviceName.bind(this));
}
...
onDeviceFound(device) {
console.log("onDeviceFound");
console.log(device);
}
onStatusChange(status) {
console.log("onStatusChange");
console.log(status);
}
onDataRead(data) {
console.log("onDataRead");
console.log(data);
}
onDeviceName(name) {
console.log("onDeviceName");
console.log(name);
}
...
componentWillUnmount() {
this.onDeviceFoundEvent.remove();
this.onStatusChangeEvent.remove();
this.onDataReadEvent.remove();
this.onDeviceNameEvent.remove();
}
Install
Run in console:
npm i -S easy-bluetooth-le
Link:
react-native link easy-bluetooth-le
Add jitpack repository in
android/build.gradle
:allprojects { repositories { ... maven { url "https://jitpack.io" } } }
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.
Licence
The MIT License (MIT)
Copyright (c) 2017 Douglas Nassif Roma Junior
See the full licence file.