UNPKG

react-native-ble-qz

Version:
123 lines (103 loc) 5.29 kB
<p align="center"> <img alt="react-native-ble-plx" src="logo.png" /> </p> React Native Bluetooth Low Energy library using [RxBluetoothKit](https://github.com/Polidea/RxBluetoothKit) and [RxAndroidBle](https://github.com/Polidea/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](https://play.google.com/store/apps/details?id=com.polidea.sniffator) and [App Store](https://itunes.apple.com/us/app/sniffator/id1147266354?ls=1&mt=8)! [![GooglePlay](googleplay.png)](https://play.google.com/store/apps/details?id=com.polidea.sniffator) [![AppStore](appstore.png)](https://itunes.apple.com/us/app/sniffator/id1147266354?ls=1&mt=8) --- [![NPM](https://nodei.co/npm/react-native-ble-plx.png?downloads=true)](https://nodei.co/npm/react-native-ble-plx/) --- ## 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. Implemented `state()` and `onStateChange()` 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 in `package.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](https://github.com/Carthage/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 to `Libraries` 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 to `Yes`. * In `Build Phases` click on top left button and add `New 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` * Minimal supported version of iOS is 8.0 **Android**: * Add `react-native-ble-plx` to a project as a dependency in `package.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: ```groovy 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` of `app` module add following dependency: ```groovy dependencies { ... compile project(':react-native-ble-plx') ... ``` * Additionaly make sure that min SDK version is at least 18: ```groovy android { ... defaultConfig { minSdkVersion 18 ... ``` * In `MainApplication.getPackages` import and add BleModule package: ```java import com.polidea.reactnativeble.BlePackage; ... public class MainApplication extends Application implements ReactApplication { ... @Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new MainReactPackage(), new BlePackage() ); } ``` * In `AndroidManifest.xml` add Bluetooth permissions and update `<uses-sdk/>`: ```xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" ... <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> <uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION"/> <!-- 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 --> <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/> <uses-sdk android:minSdkVersion="18" ... ```