¿Está com.android.camera.action.CROP no disponible para Android jelly bean 4.3?

Yo estaba usando com.android.camera.action.CROP para recortar después de tomar foto con la cámara.

Debajo estaba mi código que solía trabajar antes antes 4.3.

Intent cropIntent = new Intent("com.android.camera.action.CROP"); cropIntent.setType("image/*"); cropIntent.putExtra("crop", "true"); cropIntent.putExtra("aspectX", 1); cropIntent.putExtra("aspectY", 1); cropIntent.putExtra("outputX", Conf.getInt("IMAGE_WIDTH")); cropIntent.putExtra("outputY", Conf.getInt("IMAGE_HEIGHT")); cropIntent.putExtras(extras); startActivityForResult(cropIntent, CROP_REQUEST_CODE); 

Pero ahora que la acción de recorte de Android te lleva a la galería (porque la galería es la predeterminada con el recorte), este método de recorte falla (la foto no se guarda en la galería).

¿Alguien sabe una manera de salir de este problema. Donde puedo usar la cosecha en la foto tomada de la cámara

Copiando la respuesta de una pregunta similar preguntada anteriormente.

¿Ha considerado usar una biblioteca como esta:

GitHubLink

Encuentro que el com.android.camera.action.CROP a veces se comporta de manera diferente de teléfono a teléfono y no siempre está disponible, por lo que podría causar algunos problemas para usted de todos modos si usted está buscando para liberarlo.

ACTUALIZAR:

He probado la biblioteca anterior con Android 4.3 y funciona sin ningún problema. Sólo tiene que agregar la biblioteca a su proyecto.

A continuación, puede escribir su método de una manera muy similar:

 private void performCrop(Uri picUri) { //you have to convert picUri to string and remove the "file://" to work as a path for this library String path = picUri.toString().replaceAll("file://", ""); try { int aspectX = 750; int aspectY = 1011; Intent intent = new Intent(this, CropImage.class); //send the path to CropImage intent to get the photo you have just taken or selected from gallery intent.putExtra(CropImage.IMAGE_PATH, path); intent.putExtra(CropImage.SCALE, true); intent.putExtra("aspectX", aspectX); intent.putExtra("aspectY", aspectY); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(mCurrentPhotoPath))); startActivityForResult(intent, CROP); } catch (ActivityNotFoundException anfe) { String errorMessage = "Your device doesn't support the crop action!"; Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT); toast.show(); } 

De acuerdo con la publicación de @commonsware
Esta intención se basa en la AOSP camera app que puede o no estar disponible en el dispositivo de destino, para algunos dispositivos de 4.3 puede funcionar mientras que para algunos no.

Así que mejor enfoque será el uso de cualquier biblioteca de código abierto que se encuentra en Android arsenal
(Asegúrese de que también no se basan en AOSP ).

He intentado un par de cultivadores. Especialmente los que se refiere por commonsware no se mantienen muy bien. Por ejemplo, las imágenes tomadas con datos de rotación en la meta información no están bien rotadas. He encontrado este: https://android-arsenal.com/details/1/3487 y su gran. Nota: asegúrese de agregar la actividad con un tema de barra de acción!

  • Vista web de Android No se puede cargar la imagen capturada en android 5+? Pero su funcionamiento en algunos dispositivos
  • Cámara Android de la API 2 en Kitkat
  • Hacer una aplicación de cámara con Android utilizando la API de cámara que funcionará en todos los dispositivos
  • Corregir la relación de aspecto y la rotación de la aplicación de la cámara Android
  • Apertura de la cámara en un proceso diferente
  • ¿Cómo puedo encontrar la carpeta de imágenes de la cámara de un teléfono Android?
  • ¿Debo usar Camera2 o Camera APIs para Android?
  • La cámara PhoneGap reinicia la aplicación
  • Phonegap / Cordova cámara plugin - cómo obtener la fecha de la foto / hora?
  • ¿Cómo mejorar la vista previa de la cámara?
  • ¿Cómo debo ajustar los valores de exposición y balance de blancos para la cámara personalizada
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.