Hi,
Sometimes, on some Android phones, the image will come back rotated from TakekPhotoUI (on a Galaxy S II for example). This problem is easy enough to solve in Android Java according to this post on StackOverflow:
But I can't figure out how to duplicate that in Xamarin. The int constants (ExifInterface.ORIENTATION_ROTATE_90) just don't seem to exist in Xamarin anywhere. The closest thing I found is Android.Media.Orientation - but those aren't ints, so I have no way of mapping those values to whatever int I get back from (ExifInterface)ei.GetAttribute (ExifInterface.TagOrientation); I don't have the actual phone to test on, so I can't tell exactly what the values are, and hard coding that is hacky anyway - especially when the Android way is so simple.
More broadly, it's been pretty easy to figure out what Xamarin did to modify the various API calls for C#, and most of it's pretty well thought out (event handlers are way better in C#). But with constants specifically, it's been a total nightmare to find exactly where they have been remapped to a lot of the time. It's such a headache, that I really wish they weren't changed at all - just leave them in the original location. I don't know if it's un-c#-like to do that (I've seen a couple of libs that seem to be fine with it), but playing Hunt the Wumpus every time I come across an Android constant, is absolutely no fun.
At least provide a tool - a database where I can paste in the Android constant, and get the location of the constant in the Xamarin API, that'd at least be something.