I want to be able to capture altitude in my Android app. I know I can use GPS for where I am, but is there any way I can derive roughly how high the phone is off the ground using a combination of sensors? If not, what is the closest estimation I can get?
If the phone has a barometric pressure sensor, you can use SensorManager.getAltitude to get the altitude based on a pressure reading. This method also requires the current pressure at sea level, which can either be obtained from local airport data (via a web service) or approximated with SensorManager.PRESSURE_STANDARD_ATMOSPHERE.
For more, see:
Android: How to use SensorManager.getAltitude(float p0, float p)?