Accessing the Android Barometer using Xamarin.Android

Easily:

``` {.brush: .csharp} < ![CDATA[ [Activity (Label = "HelloBarometer", MainLauncher = true)] public class Activity1 : Activity, ISensorEventListener { TextView mainLabel;

protected override void OnCreate(Bundle bundle)
{
    base.OnCreate(bundle);
    // Set our view from the "main" layout resource
    SetContentView(Resource.Layout.Main);
    //Detect the barometer
    var sm = (SensorManager) this.GetSystemService(Context.SensorService);
    var barry = sm.GetDefaultSensor(SensorType.Pressure);
    //Subscribe to it
    sm.RegisterListener(this, barry, SensorDelay.Normal);
    // Get our button from the layout resource,
    // and attach an event to it
    mainLabel = FindViewById<textview>(Resource.Id.myText);
}

public void OnAccuracyChanged(Sensor sensor, SensorStatus accuracy)
{
    Console.WriteLine("Things have changed");
}

public void OnSensorChanged(SensorEvent pressureEvent)
{
    Console.WriteLine("Under pressure " + pressureEvent);
    var hPAs = pressureEvent.Values[0];
    var msg = string.Format("Current pressure: {0} hPA!", hPAs);
    mainLabel.Text = msg;
    var calcedAltitude = calculateAltitudeInFeet(hPAs);
    FindViewById<TextView>(Resource.Id.altitudeText).Text = string.Format("Calculated altitude is {0} ft", calcedAltitude);
}

double calculateAltitudeInFeet(float hPAs)
{
    var pstd = 1013.25;
    var altpress =  (1 - Math.Pow((hPAs/pstd), 0.190284)) * 145366.45;
    return altpress;
}

} ]] ```

I mean, I know I work for the guys, but this is just *ridiculously* easy. An hour ago I was installing the SDK...

And, yes, I live high on the side of an active volcano.