The code you have is working as expected. The pressure changes with the weather you can get a big range even at sea level e.g. say -10% +5%..
For real altitude information you need to do some calibration which means you use a calibrated value instead of SensorManager.PRESSURE_STANDARD_ATMOSPHERE
in your code above.
How you do the calibration if at all really depends on what you are trying to do. one method would be to work out the calibration value at a known altitude. e.g. at a known altitude get the pressure and then change the calibration value in the call in your code till you get something close enough to the known altitude you want out. You need to be aware that the calibration value will change with the weather. How long it will be good enough for will depend on your use case.