固定为纵向模式时获取 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.Landscape
或 Android.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?
我们有一个用 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.Landscape
或 Android.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:
编写一个 OrientationListenerHow to detect my screen orientation in portrait locked screen in android?