0

我发现在某些设备上,在以横向模式拍照后,该应用程序会出现问题。我的应用程序设计为仅处于垂直(纵向)模式,这在清单和活动定义中都有说明。当我调用 MediaStore.CaptureImage 意图并以横向模式拍摄照片时,然后返回到我的应用程序时,它会崩溃,因为我的应用程序无法以横向模式呈现。

正如我所说,这不会发生在每个安卓设备上,一些设备可以毫无问题地切换回纵向/垂直模式。一般来说,在我看来,这主要发生在 android 11 上,但这可能不是原因。

在活动类定义中:

ScreenOrientation = Android.Content.PM.ScreenOrientation.Portrait

在清单中:

<activity android:name=".MainActivity" android:windowSoftInputMode="adjustPan"
android:screenOrientation="portrait"/>

调用图像捕获的意图:

Intent intent = new Intent(MediaStore.ActionImageCaptureSecure);

FotkaFile = new Java.IO.File(CestaKFotkam, String.Format(NavstevaPriFoceniRepresentativ + "_{0}.jpg", Guid.NewGuid()));
(new Java.IO.File(CestaKFotkam.ToString())).SetWritable(true, false);
intent.PutExtra(MediaStore.ExtraOutput, Android.Net.Uri.FromFile(FotkaFile));

StartActivityForResult(intent, 0);

在我发现该错误仅在以横向模式拍摄照片时发生后,我尝试在从图像捕获返回时以编程方式修复应用程序方向。这没有帮助。

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            try
            {
            /*process the photo here*/
            }
            catch (Exception ex)
            {
                ShowAlert("Error during image processing:", ex.ToString());
            }
            RequestedOrientation = Android.Content.PM.ScreenOrientation.Portrait;
        }

我感谢任何建议和意见,谢谢。

4

0 回答 0