Android data.getData () devuelve null de CameraActivity para algunos teléfonos

Tengo un error fatal que ocurre en mi onActivityResult que viene de una actividad de la cámara fotográfica. Lo que me tiene arañando la cabeza es que el error sólo está ocurriendo en un puñado de teléfonos (basado en el número de usuarios afectados), mientras que parece que no hay nada malo para la mayoría. Puedo duplicar el error en mi Nexus 6 (ejecutando Lollipop 5.1.1) mientras mi Nota 5 (también 5.1.1) no tiene ningún problema en absoluto.

El problema es cuando estoy tratando de asignar el imageUri de data.getData (). Debugging en la Nota 5, data.mData es igual a "content: // media / external / images / media / 2215" mientras que en el Nexus 6, data.mData es null.

Sé que esta es una pregunta común hecha en SO pero no he encontrado nada que me haya ayudado hasta ahora. ¿Puede alguien apuntarme a la solución para esto y dar una respuesta?

Método Inicio de la actividad de la cámara para el resultado

@OnClick(R.id.change_image_camera) public void takePicture(){ Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);} 

OnActvityResult

 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { Uri imageUri = data.getData(); //The trouble is here String realPath = Image.getPath(this, imageUri); //getPath crashes because imageUri is null Image.compressImage(realPath); File file = new File(realPath); Bundle extra = new Bundle(); extra.putString("URL", realPath); returnIntent.putExtras(extra); setResult(RESULT_OK, returnIntent); finish(); } } 

¡Agradezco mucho cualquier ayuda en éste!

 Uri imageUri = data.getData(); //The trouble is here 

No es necesario que una aplicación de cámara devuelva un Uri apunte a la foto, ya que no forma parte del protocolo de Intent ACTION_IMAGE_CAPTURE . Ya sea:

  • Suministre EXTRA_OUTPUT en su Intent ACTION_IMAGE_CAPTURE , en cuyo caso usted sabe dónde debe almacenarse la imagen y no necesita confiar en getData() , o

  • Utilice los data adicionales en la Intent respuesta, que será un Bitmap de Bitmap de una imagen en miniatura de la imagen

Su siguiente error está aquí:

 String realPath = Image.getPath(this, imageUri); 

No es necesario que la imagen se almacene como un archivo al que pueda acceder, a menos que proporcione una ruta a esa ubicación a través de EXTRA_OUTPUT .

  • EditText afterTextChanged no funciona
  • Android: Guardar el objeto android.net.Uri en la base de datos
  • Problemas de Uri
  • ¿Cómo obtengo el URI de mi base de datos SQLite en mi aplicación para Android?
  • Obtener URI de la imagen dibujable
  • ¿Cómo obtener una instancia de archivo de un drawable?
  • Android.net.uri getQueryParameterNames () alternativa
  • Obtener el historial del navegador y el resultado de la búsqueda en android
  • Empieza whatsapp con android.content.Intent.ACTION_SENDTO
  • El antiguo constructor de SimpleCursorAdapter desaprobó .. realmente?
  • ¿Cuáles son los principios de la construcción de URIs en la plataforma Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.