Need help with react-native-sensor-manager?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

kprimice
212 Stars 62 Forks 45 Commits 25 Opened issues

Description

Native sensors access for react-native

Services available

!
?

Need anything else?

Contributors list

# 354,998
C
R
20 commits
# 193,429
React N...
Objecti...
iphone
Redux
2 commits
# 2,847
TypeScr...
React N...
ecosyst...
Storybo...
2 commits
# 576,776
Java
Ruby
2 commits
# 24,449
Java
Objecti...
React N...
webrtc
1 commit
# 395,477
Java
JavaScr...
1 commit
# 379,349
music-n...
lilypon...
Java
1 commit
# 46,304
PHP
webpack...
koa2
npm
1 commit
# 324,780
HTML
visuali...
reactiv...
The Jul...
1 commit

react-native-sensor-manager

Wrapper for react-native. Accelerometer, Gyroscope, Magnetometer, Orientation, Step Counter, Thermometer, LightSensor, and Proximity Sensor are supported for now.

Add it to your project

$ npm i react-native-sensor-manager --save

Option: With
rnpm

rnpm link

Option: Manually (try it if an runtime error occurs after
nrpm link
)

Make alterations to the following files:

  • android/settings.gradle
...
include ':react-native-sensor-manager'
project(':react-native-sensor-manager').projectDir = new File(settingsDir, '../node_modules/react-native-sensor-manager/android')
  • android/app/build.gradle
...
dependencies {
    ...
    compile project(':react-native-sensor-manager')
}
  • register module (in MainApplication.java)

    • For react-native below 0.19.0 (use
      cat ./node_modules/react-native/package.json | grep version
      )
import com.sensormanager.SensorManagerPackage; // 
  • For react-native 0.19.0 and higher ```java import com.sensormanager.SensorManagerPackage; // <------ add package

public class MainApplication extends Application implements ReactApplication { // ... @Override protected List getPackages() { return Arrays.asList( new MainReactPackage(), // <---- add comma new SensorManagerPackage() // <---------- add package ); } ```

Api

Setup

import React, {
  DeviceEventEmitter // will emit events that you can listen to
} from 'react-native';

import { SensorManager } from 'NativeModules';

Accelerometer

SensorManager.startAccelerometer(100); // To start the accelerometer with a minimum delay of 100ms between events.
DeviceEventEmitter.addListener('Accelerometer', function (data) {
  /**
  * data.x
  * data.y
  * data.z
  **/
});
SensorManager.stopAccelerometer();

Gyroscope

DeviceEventEmitter.addListener('Gyroscope', function (data) {
  /**
  * data.x
  * data.y
  * data.z
  **/
});
SensorManager.startGyroscope(100);
SensorManager.stopGyroscope();

Magnetometer

SensorManager.startMagnetometer(100);
DeviceEventEmitter.addListener('Magnetometer', function (data) {
  /**
  * data.x
  * data.y
  * data.z
  **/
});
SensorManager.stopMagnetometer();

Orientation

SensorManager.startOrientation(100);
DeviceEventEmitter.addListener('Orientation', function (data) {
  /**
  * data.azimuth
  * data.pitch
  * data.roll
  **/
});
SensorManager.stopOrientation();

Step Counter

SensorManager.startStepCounter(1000);
DeviceEventEmitter.addListener('StepCounter', function (data) {
  /**
  * data.steps
  **/
});
SensorManager.stopStepCounter();

Thermometer

SensorManager.startThermometer(1000);
DeviceEventEmitter.addListener('Thermometer', function (data) {
  /**
  * data.temp
  **/
});
SensorManager.stopThermometer();

LightSensor

SensorManager.startLightSensor(100);
DeviceEventEmitter.addListener('LightSensor', function (data) {
  /**
  * data.light
  **/
});
SensorManager.stopLightSensor();

Proximity Sensor

SensorManager.startProximity(100);
DeviceEventEmitter.addListener('Proximity', function (data) {
  /**
  * data.isNear: [Boolean] A flag representing whether something is near the screen.
  * data.value: [Number] The raw value returned by the sensor (usually distance in cm).
  * data.maxRange: [Number] The maximum range of the sensor.
  **/
});
SensorManager.stopProximity();

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.