Xamarin.Essentials: Barometer
The Barometer class lets you monitor the device's barometer sensor, which measures pressure.
Get started
To start using this API, read the getting started guide for Xamarin.Essentials to ensure the library is properly installed and set up in your projects.
Using Barometer
Add a reference to Xamarin.Essentials in your class:
using Xamarin.Essentials;
The Barometer functionality works by calling the Start
and Stop
methods to listen for changes to the barometer's pressure reading in hectopascals. Any changes are sent back through the ReadingChanged
event. Here is sample usage:
public class BarometerTest
{
// Set speed delay for monitoring changes.
SensorSpeed speed = SensorSpeed.UI;
public BarometerTest()
{
// Register for reading changes.
Barometer.ReadingChanged += Barometer_ReadingChanged;
}
void Barometer_ReadingChanged(object sender, BarometerChangedEventArgs e)
{
var data = e.Reading;
// Process Pressure
Console.WriteLine($"Reading: Pressure: {data.PressureInHectopascals} hectopascals");
}
public void ToggleBarometer()
{
try
{
if (Barometer.IsMonitoring)
Barometer.Stop();
else
Barometer.Start(speed);
}
catch (FeatureNotSupportedException fnsEx)
{
// Feature not supported on device
}
catch (Exception ex)
{
// Other error has occurred.
}
}
}
Sensor Speed
- Fastest – Get the sensor data as fast as possible (not guaranteed to return on UI thread).
- Game – Rate suitable for games (not guaranteed to return on UI thread).
- Default – Default rate suitable for screen orientation changes.
- UI – Rate suitable for general user interface.
If your event handler is not guaranteed to run on the UI thread, and if the event handler needs to access user-interface elements, use the MainThread.BeginInvokeOnMainThread
method to run that code on the UI thread.