Skip to content

A react native android module for serial IO over bluetooth device.

License

Notifications You must be signed in to change notification settings

derektu/react-native-android-btserial

Repository files navigation

Bluetooth module for react-native android

npm

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

Link libraries

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
        );
    }

  ......

}

Usage

import BTSerial  from 'react-native-android-btserial'

or

const BTSerial  = require('react-native-android-btserial')

API

isEnabled

Check if Bluetooth is enabled.

BTSerial.isEnabled(function (err, enabled) {
    // enabled is true/false
})

enableBT

Enable Bluetooth. If Bluetooth is not enabled, will request user to enable BT

BTSerial.enableBT(function (err, enabled) {
  // enabled is true/false
})

showBTSettings

Display System Bluebooth settings screen.

BTSerial.showBTSettings()

listDevices

List paired devices. devices is an array of {id:.., address:.., name:..}

BTSerial.listDevices(function(err, devices) {
    // callback
})

connect

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

Disconnect from connected device.

BTSerial.disconnect();

write

Write data to connected devices. If encoding is null or empty, default to utf-8.

BTSerial.write(string, encoding, function (err) {
    // callback
})

available

Check if there is any data received from connected device.

BTSerial.available(function (err, count) {
    // callback
})

read

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
})

setConnectionStatusCallback

Register a callback that will be invoked when remote connection is aborted. When callback 'e' is {devicename: 'this device'}

BTSerial.setConnectionStatusCallback(function (e) {
    // callback
})

setDataAvailableCallback

Register a callback that will be invoked when receive data from connected device. When callback 'e' is {available: count}

BTSerial.setDataAvailableCallback(function (e) {
    // callback
})

About

A react native android module for serial IO over bluetooth device.

Resources

License

Stars

Watchers

Forks

Packages

No packages published