Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kprimice/react-native-sensor-manager
Native sensors access for react-native
https://github.com/kprimice/react-native-sensor-manager
Last synced: 6 days ago
JSON representation
Native sensors access for react-native
- Host: GitHub
- URL: https://github.com/kprimice/react-native-sensor-manager
- Owner: kprimice
- Created: 2016-03-02T19:38:59.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-02-03T15:27:19.000Z (almost 3 years ago)
- Last Synced: 2024-11-08T14:59:58.231Z (about 1 month ago)
- Language: Java
- Homepage:
- Size: 30.3 KB
- Stars: 239
- Watchers: 9
- Forks: 73
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-react-native - react-native-sensor-manager ★172 - Wrapper for react-native providing native sensors access. (Gyroscope, accelerometer, magnetometer, thermometer...) (Components / System)
- awesome-react-native-native-modules - react-native-sensor-manager ★146 - native. (<a name="Motion-Sensor:-Native-Modules">Motion Sensor: Native Modules</a>)
- awesome-react-native - react-native-sensor-manager ★172 - Wrapper for react-native providing native sensors access. (Gyroscope, accelerometer, magnetometer, thermometer...) (Components / System)
- awesome-react-native - react-native-sensor-manager ★172 - Wrapper for react-native providing native sensors access. (Gyroscope, accelerometer, magnetometer, thermometer...) (Components / System)
- awesome-react-native-ui - react-native-sensor-manager ★84 - Wrapper for react-native providing native sensors access. (Gyroscope, accelerometer, magnetometer, thermometer...) (Components / System)
- awesome-react-native - react-native-sensor-manager ★172 - Wrapper for react-native providing native sensors access. (Gyroscope, accelerometer, magnetometer, thermometer...) (Components / System)
README
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`](https://github.com/rnpm/rnpm)
`rnpm link`
### Option: Manually (try it if an runtime error occurs after `nrpm link`)
Make alterations to the following files:
* `android/settings.gradle`
```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`
```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`)
```java
import com.sensormanager.SensorManagerPackage; // <------ add packagepublic class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = new ReactRootView(this);mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")
.addPackage(new MainReactPackage())
.addPackage(new SensorManagerPackage()) // <------- add package
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();mReactRootView.startReactApplication(mReactInstanceManager, "ExampleRN", null);
setContentView(mReactRootView);
}......
}
```* For react-native 0.19.0 and higher
```java
import com.sensormanager.SensorManagerPackage; // <------ add packagepublic class MainApplication extends Application implements ReactApplication {
// ...
@Override
protected List getPackages() {
return Arrays.asList(
new MainReactPackage(), // <---- add comma
new SensorManagerPackage() // <---------- add package
);
}
```Api
----### Setup
```js
import React, {
DeviceEventEmitter // will emit events that you can listen to
} from 'react-native';import { SensorManager } from 'NativeModules';
```### Accelerometer
```js
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
```js
DeviceEventEmitter.addListener('Gyroscope', function (data) {
/**
* data.x
* data.y
* data.z
**/
});
SensorManager.startGyroscope(100);
SensorManager.stopGyroscope();
```### Magnetometer
```js
SensorManager.startMagnetometer(100);
DeviceEventEmitter.addListener('Magnetometer', function (data) {
/**
* data.x
* data.y
* data.z
**/
});
SensorManager.stopMagnetometer();
```### Orientation
```js
SensorManager.startOrientation(100);
DeviceEventEmitter.addListener('Orientation', function (data) {
/**
* data.azimuth
* data.pitch
* data.roll
**/
});
SensorManager.stopOrientation();
```### Step Counter
```js
SensorManager.startStepCounter(1000);
DeviceEventEmitter.addListener('StepCounter', function (data) {
/**
* data.steps
**/
});
SensorManager.stopStepCounter();
```### Thermometer
```js
SensorManager.startThermometer(1000);
DeviceEventEmitter.addListener('Thermometer', function (data) {
/**
* data.temp
**/
});
SensorManager.stopThermometer();
```### LightSensor
```js
SensorManager.startLightSensor(100);
DeviceEventEmitter.addListener('LightSensor', function (data) {
/**
* data.light
**/
});
SensorManager.stopLightSensor();
```### Proximity Sensor
```js
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();
```