Expo

Documentation

Barometer

Access the device barometer sensor to respond to changes in air pressure. pressure is measured in hectopascals or hPa.

Platform Compatibility

Android DeviceAndroid EmulatoriOS DeviceiOS SimulatorWeb

For managed apps, you'll need to run expo install expo-sensors. To use it in a bare React Native app, follow its installation instructions.

import React from 'react';
import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
import { Barometer } from 'expo-sensors';

export default class BarometerSensor extends React.Component {
  state = {
    data: {},
  };

  componentDidMount() {
    this._toggle();
  }

  componentWillUnmount() {
    this._unsubscribe();
  }

  _toggle = () => {
    if (this._subscription) {
      this._unsubscribe();
    } else {
      this._subscribe();
    }
  };

  _subscribe = () => {
    this._subscription = Barometer.addListener(data => {
      this.setState({ data });
    });
  };

  _unsubscribe = () => {
    this._subscription && this._subscription.remove();
    this._subscription = null;
  };

  render() {
    const { pressure = 0 } = this.state.data;

    return (
      <View style={styles.sensor}>
        <Text>Barometer:</Text>
        <Text>{pressure * 100} Pa</Text>

        <View style={styles.buttonContainer}>
          <TouchableOpacity onPress={this._toggle} style={styles.button}>
            <Text>Toggle</Text>
          </TouchableOpacity>
        </View>
      </View>
    );
  }
}

import { Barometer } from 'expo-sensors';

You should always check the sensor availability before attempting to use it.
Returns a promise which resolves into a boolean denoting the availability of the device barometer.
OSAvailability
iOSiOS 8+
AndroidAndroid 2.3+ (API Level 9+)
WebN/A

Returns

  • A promise that resolves to a boolean denoting the availability of the sensor.

Subscribe for updates to the barometer.
const subscription = Barometer.addListener(({ pressure, relativeAltitude }) => {
  console.log({ pressure, relativeAltitude });
});

Arguments

  • listener (function) -- A callback that is invoked when an barometer update is available. When invoked, the listener is provided a single argument that is an object containing: pressure: number (hPa). On iOS the relativeAltitude: number (meters) value will also be available.

Returns

  • A subscription that you can call remove() on when you would like to unsubscribe the listener.

Removes all listeners.

The altitude data returned from the native sensors.
type BarometerMeasurement = {
  pressure: number;
  /* iOS Only */
  relativeAltitude?: number;
};
NameTypeFormatiOSAndroidWeb
pressurenumberhPa
relativeAltitudenumber | undefinedmeters

OSUnitsProviderDescription
iOShPaCMAltimeterAltitude events reflect the change in the current altitude, not the absolute altitude.
AndroidhPaSensor.TYPE_PRESSUREMonitoring air pressure changes.
WebN/AN/AThis sensor is not available on the web and cannot be accessed. An UnavailabilityError will be thrown if you attempt to get data.