Acceso a imágenes de resolución completa desde la cámara con MonoDroid

Estoy tratando de encontrar una manera de acceder a imágenes de resolución completa de MonoDroid, después de un largo tiempo de intentar portar los ejemplos de Java a MonoDroid y mirando cómo para otros parecen haber llegado, actualmente tengo lo siguiente (que no funciona )

private const int TAKE_PICTURE = 1; protected Uri fileUri; private void takePhoto(object sender, EventArgs e) { Intent intent = new Intent(Android.Provider.MediaStore.ActionImageCapture); string path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "hqxmmc/pictures/ikbeneenplaatje.jpg"); Java.IO.File xfile = new Java.IO.File(path); if (xfile.Exists()) { Android.Util.Log.Warn("FILE", "file exists {0} \n overwriting!", xfile.Name); xfile.Delete(); xfile.CreateNewFile(); } else { Android.Util.Log.Warn("FILE", "file does not exist {0}, creating", xfile.Name); xfile.Mkdirs(); xfile.CreateNewFile(); } fileUri = Android.Net.Uri.FromFile(xfile); Android.Util.Log.WriteLine(LogPriority.Warn, "FILE", fileUri.ToString()); intent.PutExtra(Android.Provider.MediaStore.ExtraOutput, fileUri); StartActivityForResult(intent, TAKE_PICTURE); } protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); if (requestCode == TAKE_PICTURE) { Uri imageUri = null; // Check if the result includes a thumbnail Bitmap if (data != null) { if (data.HasExtra("data")) { var thumbnail = data.GetParcelableArrayExtra("data"); Android.Util.Log.WriteLine(LogPriority.Info, "DATA", thumbnail.ToString()); // TODO Do something with the thumbnail var outputFileUri = data.GetParcelableArrayExtra("outputFileuri"); Android.Util.Log.WriteLine(LogPriority.Info, "DATA", outputFileUri.ToString()); // TODO Do something with the full image stored // in outputFileUri } } else { //todo : reload full image form fileuri Android.Util.Log.WriteLine(LogPriority.Info, "PATH", fileUri.ToString()); } } } 

Aparecerá la pantalla "tomar una foto", puedo tomar una foto, pero esa imagen se guarda en la carpeta DCIM predeterminada del dispositivo, ignorando el nombre de archivo y la ruta de acceso especificados para él.

Cuando guardo la imagen, OnActivityResult se llama, pero su parámetro de Intent data contiene una intención vacía.

¿Cómo consigo el acceso a la imagen de la resolución completa y / o la miniatura de la imagen acabo de tirar?

Simplemente publicaré el código que he utilizado en mi proyecto. Espero que te ayude. También he intentado establecer el nombre de archivo y la ruta a través de la clase de ContentValues, como se describe en Android wiki, pero todo fue ineficaz, creo que es un poco de error MonoDroid.

 private string _imageUri; private Boolean isMounted { get { return Android.OS.Environment.ExternalStorageState.Equals(Android.OS.Environment.MediaMounted); } } public void BtnCameraClick(object sender, EventArgs eventArgs) { var uri = ContentResolver.Insert(isMounted ? MediaStore.Images.Media.ExternalContentUri : MediaStore.Images.Media.InternalContentUri, new ContentValues()); _imageUri = uri.ToString(); var i = new Intent(MediaStore.ActionImageCapture); i.PutExtra(MediaStore.ExtraOutput, uri); StartActivityForResult(i, CAPTURE_PHOTO); } protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { if (resultCode == Result.Ok && requestCode == CAPTURE_PHOTO) { Toast.MakeText(this, string.Format("Image URI is {0}",_imageUri), ToastLength.Short).Show(); } } 
  • ParseInstallation.SaveAsync () que causa UnhandledException en formularios Xamarin Android
  • Error después de habilitar Multi-Dex en Xamarin Android
  • ¿Por qué no puedo establecer la elevación en una vista que agrego mediante programación?
  • Operador '! =' No se puede aplicar a los operandos de tipo 'Tarea' e 'int'
  • Depuración de un dispositivo "remoto" Android con Xamarin?
  • No puede convertir implícitamente tipo 'System.IO.Stream' a 'Java.IO.InputStream'
  • MonoDroid: Fragment.Instantiate ClassNotFoundException
  • Biblioteca C # .dll en la aplicación para Android
  • FragmentPagerAdapter sólo existe en Android.Support.V4.App (y no en Android.App)
  • Android FragmentTab host y Fragmentos dentro de Fragmentos
  • Resource.Designer.cs: "Recurso ... no contiene una definición para ..."
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.