| React Native Version | react-native-sensors Version |
|---|---|
| <= 39 | < 1.0 |
| >= 40 | >= 1.0 |
Do you want your project listed here? Just send a PR.
$ npm install react-native-sensors --save
$ react-native link react-native-sensors
Option: With CocoaPods (iOS only)
Add the following to your Podfile and run $ pod install:
pod 'RNSensors', :path => '../node_modules/react-native-sensors'
- In XCode, in the project navigator, right click
Libraries➜Add Files to [your project's name] - Go to
node_modules➜react-native-sensorsand addRNSensors.xcodeproj - In XCode, in the project navigator, select your project. Add
libRNSensors.ato your project'sBuild Phases➜Link Binary With Libraries - Run your project (
Cmd+R)<
- Open up
android/app/src/main/java/[...]/MainApplication.java
- Add
import com.sensors.RNSensorsPackage;to the imports at the top of the file - Add
new RNSensorsPackage()to the list returned by thegetPackages()method
- Append the following lines to
android/settings.gradle:include ':react-native-sensors' project(':react-native-sensors').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sensors/android') - Insert the following lines inside the dependencies block in
android/app/build.gradle:compile project(':react-native-sensors')
- In Visual Studio, right click on the solution ➜
add➜existing project... - Go to
node_modules➜react-native-sensorsand addRNSensors.csproj - In Visual Studio, in the solution explorer, expand your project, right click
References➜Add Reference...and add RNSensors - In the MainPage.cs
- Add
using RNSensors; - Add
new RNSensorsPackage()on the List of Packages, right belownew MainReactPackage()
- Done !
import { Accelerometer, Gyroscope } from 'react-native-sensors'; const accelerationObservable = new Accelerometer({ updateInterval: 100, // defaults to 100ms }); // Normal RxJS functions accelerationObservable .map(({ x, y, z }) => x + y + z) .filter(speed => speed > 20) .subscribe(speed => console.log(`You moved your phone with ${speed}`)); setTimeout(() => { accelerationObservable.stop(); }, 1000);import React, { Component } from 'react'; import { Text, View } from 'react-native'; import { decorator as sensors } from 'react-native-sensors'; class MyComponent { // no lifecycle needed render() { const { Accelerometer, Gyroscope, } = this.props; if (!Accelerometer || !Gyroscope) { // One of the sensors is still initializing return null; } return ( <View style={styles.container}> <Text style={styles.welcome}> Acceleration has value: {Accelerometer} Gyro has value: {Gyroscope} </Text> </View> ); } } export default sensors({ Accelerometer: { updateInterval: 300, // optional }, Gyroscope: true, })(MyComponent);This project is inspired by the react-native-sensor-manager and by the react-native-motion-manager. Both have similar solutions with a non-uniform interface and this project aims to unify both.