固定为纵向模式时获取 android 设备方向

Get android device orientation when fixed in portrait mode

我们有一个用 c# 和 xamarin 编写的应用程序,所有活动都强制采用纵向模式。然而,这在录制视频时会产生一些方向问题。以横向模式录制视频时,元数据错误。我尝试使用这些方法。

Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
        Camera.GetCameraInfo(_currentCamera, cameraInfo);

        var surfaceOrientation = WindowManager.DefaultDisplay.Rotation;

然而,无论设备如何转动,它们都提供固定角度。即使 activity 固定为纵向模式,我如何才能获得实际的设备方向?

我相信您应该能够根据 Resources.Configuration.Orientation 获得 Orientation,其中它将指定 Android.Content.Res.Orientation.LandscapeAndroid.Content.Res.Orientation.Portrait

的值

http://androidapi.xamarin.com/index.aspx?link=T%3AAndroid.Content.Res.Orientation

http://developer.android.com/reference/android/content/res/Configuration.html#orientation

否则,如果您无法通过这种方式跟踪 Orientation,您可能需要根据以下 SO post:

编写一个 OrientationListener

How to detect my screen orientation in portrait locked screen in android?