在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
有什么建议吗?
更新 拍摄低分辨率照片时,问题不会发生
答案 0 :(得分:1)
我的变形金刚也有类似的问题,但我的问题是它从未奏效。我不认为我曾尝试过要求不同的图像尺寸。这post对我有帮助,这是Donn Felker给我的答案。我必须确保在启动相机意图之前创建了一个空文件,以便相机应用程序允许OK按钮完成意图。