我在看一些触发android.media.action.IMAGE_CAPTURE
意图的示例,并使用类级变量来存储结果图像。我不想这样做。我认为我应该能够给出意图文件的URI,然后在完成时从意图中获取该URI。我试图做到这一点:如何从相机意图中提取文件URI?
void snapPixButton_Click(object sender, EventArgs e)
{
Intent cameraIntent = new Intent(MediaStore.ActionImageCapture);
File file = new File(Home.SnapStorageLocation, string.Format("{0}.jpg", Guid.NewGuid()));
cameraIntent.PutExtra(MediaStore.ExtraOutput, file.ToURI().ToString());
StartActivityForResult(cameraIntent, SnapPixIntentRequestCode);
}
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
if (requestCode == SnapPixIntentRequestCode && resultCode == Result.Ok)
{
URI uri = new URI(data.GetStringExtra(MediaStore.ExtraOutput));
File file = new File(uri);
using (Bitmap bitmap = LoadAndResizeBitmap(file.Path, this.ImageView.Width, this.ImageView.Height))
{
this.ImageView.SetImageBitmap(bitmap);
}
}
}
但在OnActivityResult
,调用data.GetStringExtra(MediaStore.ExtraOutput)
结果的消息中:未知标识符:MediaStore
我在做什么错?我认为我不应该保留类级变量,我应该能够将数据传递给意图,然后再提取它,对吧?
检查:http://stackoverflow.com/questions/6341329/built-in-camera-using-the-extra-mediastore-extra-output-stores-pictures-twice –
@PareshMayani:谢谢,那篇文章doesn'尽管我很好的回答了我的问题。 –