What I can tell you is that you cannot trust the getHorizontalViewingAngle(). Theoretically, this function should get the correct value, but many phones (from my experience) have just a random value hardcoded there. It may be 360, like in your case, 10 (another phone I heard of), or have the same vertical and horizontal viewing angles, which cannot be correct. The only reliable way to do it is to measure or determine from the optics for each and every phone you want to support.
Check @mat-ball comment for how to measure it and look at this post about iPhone on how to calculate it (suppose you have details about the chip size and all the rest)
http://falklumo.blogspot.com/2010/06/apple-iphone-4-camera-specs.html
The reason for that is the function in the Android API is required to have a non-null value, and for the phone to be recognized as android-phone, it must pass some automatic tests. And the manufacturers just fill in a value to make sure their API implementation is validated.
http://developer.android.com/reference/android/hardware/Camera.Parameters.html#getHorizontalViewAngle()
Sorry for dissapointing you, but this is the truth :)
EDIT
If you want to use this when zooming in or out, to extract the dynamic viewing angle, do not use getHVA() even when it gets a rasonable value, because it is not changing with the zoom, as one would suppose.