Provides barometric and altitude information for React-native apps for both IOS and Android.
yarn add react-native-barometer
or
npm install react-native-barometer --save
react-native link react-native-barometer
Manually link the library on iOS
Drag RNBarometer.xcodeproj
to your project on Xcode (usually under the Libraries group on Xcode):
Click on your main project file (the one that represents the .xcodeproj
) select Build Phases
and drag the static library from the Products
folder inside the Library you are importing to Link Binary With Libraries
(or use the +
sign and choose library from the list):
Update your Podfile
pod 'react-native-barometer', path: '../node_modules/react-native-barometer'
Manually link the library on Android
include ':react-native-barometer'
project(':react-native-barometer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-barometer/android')
dependencies {
...
implementation project(':react-native-barometer')
}
On top, where imports are:
import com.sensorworks.RNBarometerPackage;
Add the RNBarometerPackage
class to your list of exported packages.
@Override
protected List<ReactPackage> getPackages() {
return Arrays.asList(
new MainReactPackage(),
new RNBarometerPackage()
);
}
Since react-native 0.60 and higher, autolinking makes the installation process simpler
import Barometer from 'react-native-barometer';
Barometer.watch((payload => {});
Before using, check to see if barometric updates are supported on the device.
const isSupported = Barometer.isSupported();
Optionally request an update interval in ms. The default update rate is (approx) 200ms, i.e. 5Hz.
// request updates once every second
Barometer.setInterval(1000);
The altitude event contains two altitudes. The first is the standard atmosphere altitude based upon the standard atmospheric pressure of 1013.25hPa. The second is an altitude based upon a pressure that you can configure. You typically use this to calibrate the altitude to a reference altitude, for example the field elevation of an airport.
// set the local pressure to 985hPa
Barometer.setLocalPressure(985);
Barometer.watch(success);
Invokes the success callback whenever the pressure or altitude changes. The payload delivered via the callback is defined in the example below.
Returns a watchId
(number).
Parameters:
Name | Type | Required | Description |
---|---|---|---|
success | function | Yes | Invoked at a default interval of 5hz This can be changed by using the setInterval method. |
Example:
const watchId = Barometer.watch((payload) =>{
/*
payload.timestamp - sample time in ms referenced to January 1, 1970 UTC
payload.pressure - current air pressure in hPa
payload.altitudeASL - altitude in metres based upon standard atmosphere
payload.altitude - altitude in metres based upon the local pressure
payload.relativeAltitude - altitude gained or lost since `watch()` was called.
payload.verticalSpeed - current vertical speed (+/-) in metres per second
*/
);
Barometer.clearWatch(watchID);
Parameters:
Name | Type | Required | Description |
---|---|---|---|
watchID | number | Yes | Id as returned by watch() . |
Barometer.stopObserving();
Stops observing for all barometric updates.
In addition, it removes all listeners previously registered.
Note that this method does nothing if the Barometer.watch(successCallback)
method has not previously been called.