Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

45 Commits

Repository files navigation

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 =newFile(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)
importcom.sensormanager.SensorManagerPackage; // <------ add packagepublicclassMainActivityextendsActivityimplementsDefaultHardwareBackBtnHandler {
......
@OverrideprotectedvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = newReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")
.addPackage(newMainReactPackage())
.addPackage(newSensorManagerPackage()) // <------- add package
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "ExampleRN", null);
setContentView(mReactRootView);
}
......
}
  • For react-native 0.19.0 and higher
importcom.sensormanager.SensorManagerPackage; // <------ add packagepublicclassMainApplicationextendsApplicationimplementsReactApplication {
// ...@OverrideprotectedList<ReactPackage> getPackages() {
returnArrays.<ReactPackage>asList(
newMainReactPackage(), // <---- add commanewSensorManagerPackage() // <---------- add package
);
}

Api

Setup

importReact,{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();

About

Native sensors access for react-native

Resources

Stars

239 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages