React Native Bluetooth Low Energy library using RxBluetoothKit and RxAndroidBle as it's backend libraries.
This is a specified version. manufactureData is modified to array I have add Screen on/off event to this module Example apps are available in Google Play and App Store!
Recent Changes
0.4.0
- Device ID properties were renamed as they are not UUIDs on Android (breaking change):
Device.uuid
->Device.id
Service.deviceUUID
->Service.deviceID
,Characteristic.deviceUUID
->Characteristic.deviceID
- Changed signature of
onDeviceDisconnected
, as Device object is always available. - Updated to Swift 3.0
- Updated to RxAndroidBle 1.1.0 and RxBluetoothKit 3.0.6
- Documentation was moved to
./doc
folder and now is generated by ESDoc. - Fixed
state()
invalid return type. Implementedstate()
andonStateChange()
for Android. - Added optional parameter to
onStateChange()
function. - Fixed
monitorCharacteristicForDevice()
for Android when characteristic accepts indications only. - Updated
AndroidManifest.xml
configuration.
Documentation
Documentation can be found under ./doc
folder.
Configuration & Installation
iOS:
- Add
react-native-ble-plx
to a project as a dependency inpackage.json
file. For example"react-native-ble-plx": "Polidea/react-native-ble-plx"
will install latest version from Polidea's Github repository. - Make sure that you have Carthage installed on your system.
- Execute
npm install
to fetch and install a library. - Open iOS project located in
./ios
folder. - Move
BleClient.xcodeproj
located in.node_modules/react-native-ble-plx/ios
using drag & drop toLibraries
folder in your project. - In general settings of a target add
libBleClient.a
to Linked Frameworks and Libraries. - In
Build Settings
/Search Paths
/Framework search paths
add path:$(SRCROOT)/../node_modules/react-native-ble-plx/ios/BleClientManager/Carthage/Build/iOS
. - In
Build Settings
/Build Options
/Always Embed Swift Standard Libraries
set toYes
. - In
Build Phases
click on top left button and addNew Run Script Phase
.- Shell command:
/usr/local/bin/carthage copy-frameworks
- Input Files:
$(SRCROOT)/../node_modules/react-native-ble-plx/ios/BleClientManager/Carthage/Build/iOS/BleClientManager.framework
$(SRCROOT)/../node_modules/react-native-ble-plx/ios/BleClientManager/Carthage/Build/iOS/RxSwift.framework
$(SRCROOT)/../node_modules/react-native-ble-plx/ios/BleClientManager/Carthage/Build/iOS/RxBluetoothKit.framework
- Shell command:
- Minimal supported version of iOS is 8.0
Android:
- Add
react-native-ble-plx
to a project as a dependency inpackage.json
file. For example"react-native-ble-plx": "Polidea/react-native-ble-plx"
will install latest version from Polidea's Github repository. - Execute
npm install
to fetch and install a library. - Open Android project located in
./android
folder. - In
settings.gradle
add following lines:
include ':react-native-ble-plx'project(':react-native-ble-plx').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-ble-plx/android')
- In
build.gradle
ofapp
module add following dependency:
dependencies { ... compile project(':react-native-ble-plx') ...
- Additionaly make sure that min SDK version is at least 18:
android { ... defaultConfig { minSdkVersion 18 ...
- In
MainApplication.getPackages
import and add BleModule package:
...
- In
AndroidManifest.xml
add Bluetooth permissions and update<uses-sdk/>
:
<!-- Add this line if your application always requires BLE. More info can be found on: https://developer.android.com/guide/topics/connectivity/bluetooth-le.html#permissions -->