在MonoDroid应用程序中拍摄2张照片后,相机应用程序停止工作

时间:2012-01-23 10:17:18

标签: c# android xamarin.android

在MonoDroid应用程序中,以下代码用于启动本机相机应用程序:

    internal void TakePicture(int pictureId)
    {
        var uri = ContentResolver.Insert(MediaStore.Images.Media.ExternalContentUri, new ContentValues());

        var intent = new Intent(MediaStore.ActionImageCapture);
        intent.PutExtra(MediaStore.ExtraOutput, uri);
        StartActivityForResult(intent, ACTIVITY_RESULT_PICTURE_TAKEN);

        pictureId = pictureId;
        pictureUri = uri;
    }

拍摄完照片后,会在此处理:

    protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
        if (requestCode == ACTIVITY_RESULT_PICTURE_TAKEN)
        {
            if (resultCode == Result.Ok)
            {
                /* The URI is not a valid path, but something internal to Android
                 * See
                 * https://stackoverflow.com/questions/8448796/monodroid-setting-imageview-to-image-stored-on-sdcard
                 * for more information. */

                if (OnPictureTaken != null)
                    OnPictureTaken(this, new PictureTakenEventArgs(pictureId, GetRealPathFromURI(pictureUri)));
            }
        }
    }

前2次尝试拍照总是成功,但是第3次 Android相机应用程序允许您拍照但它不会关闭它 不再将图片返回给应用程序了... (上面的事件处理程序也不会被调用)。

我们正在使用华硕Transformer 101平板电脑(多个固件版本)进行测试

PS:我发现了这个条目,但我认为这是一个不同的问题。

  

error after taking several pictures using the android camera

有什么建议吗?

更新 拍摄低分辨率照片时,问题不会发生

1 个答案:

答案 0 :(得分:1)

我的变形金刚也有类似的问题,但我的问题是它从未奏效。我不认为我曾尝试过要求不同的图像尺寸。这post对我有帮助,这是Donn Felker给我的答案。我必须确保在启动相机意图之前创建了一个空文件,以便相机应用程序允许OK按钮完成意图。