A react native android module for serial IO over bluetooth device. Remember to test in a real device because android emulator doesn't support bluetooth
The source code is largely from BluetoothSerial cordova plugin. However only part of the source code is ported due to time constraint.
Example code here
Use react native >= 0.47.0
Install via npm
$ npm install -S react-native-android-btserial
IMPORTANT at this moment you will need to run the next command instead
$ npm install -S yhozen/react-native-android-btserial
Add the following lines of codes in each file
android/settings.gradle
...
include ':react-native-android-btserial'
project(':react-native-android-btserial').projectDir = new File(settingsDir, '../node_modules/react-native-android-btserial')
android/app/build.gradle
( NOT android/build.gradle )
...
dependencies {
...
compile project(':react-native-android-btserial')
}
- MainApplication.java (android/app/src/main/java/com/[appname])
import com.derektu.btserial.BTSerialPackage; // <--- add this
public class MainApplication extends Application implements ReactApplication {
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new BTSerialPackage() // <----- and this
);
}
......
}
import BTSerial from 'react-native-android-btserial'
or
const BTSerial = require('react-native-android-btserial')
- BTSerial.isEnabled
- BTSerial.enableBT
- BTSerial.showBTSettings
- BTSerial.listDevices
- BTSerial.connect
- BTSerial.disconnect
- BTSerial.write
- BTSerial.available
- BTSerial.read
- BTSerial.setConnectionStatusCallback
- BTSerial.setDataAvailableCallback
Check if Bluetooth is enabled.
BTSerial.isEnabled(function (err, enabled) {
// enabled is true/false
})
Enable Bluetooth. If Bluetooth is not enabled, will request user to enable BT
BTSerial.enableBT(function (err, enabled) {
// enabled is true/false
})
Display System Bluebooth settings screen.
BTSerial.showBTSettings()
List paired devices. devices is an array of {id:.., address:.., name:..}
BTSerial.listDevices(function(err, devices) {
// callback
})
Connect to a paired device. If device is connected, status is true, and deviceName is the name of remote device. Otherwise status is false.
BTSerial.connect(address, function (err, status, deviceName) {
// callback
})
Disconnect from connected device.
BTSerial.disconnect();
Write data to connected devices. If encoding is null or empty, default to utf-8.
BTSerial.write(string, encoding, function (err) {
// callback
})
Check if there is any data received from connected device.
BTSerial.available(function (err, count) {
// callback
})
Read data from connected device. If encoding is null or empty, default to utf-8. If there is no data, empty string('') will be returned.
BTSerial.read(encoding, function (err, string) {
// callback
})
Register a callback that will be invoked when remote connection is aborted. When callback 'e' is {devicename: 'this device'}
BTSerial.setConnectionStatusCallback(function (e) {
// callback
})
Register a callback that will be invoked when receive data from connected device. When callback 'e' is {available: count}
BTSerial.setDataAvailableCallback(function (e) {
// callback
})