studio programacion móviles libro desarrollo curso aplicaciones android camera save gallery storage

móviles - manual de programacion android pdf



La foto no aparece en la galería (3)

Intento tomar una foto usando la cámara android y diciéndole que la guarde en la galería del teléfono. Creo que metí la pata en el camino, pero parece que no puedo encontrar mi error. ¿Alguien podría ayudarme? Soy muy novato en Android.

Código para llamar a la cámara

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); String uriToFileInExternalStorage = null; cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriToFileInExternalStorage); startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

codifique para manejar la foto y dígale que vaya a la galería.

protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAMERA_PIC_REQUEST) { //check if camera has taken picture by checking request code Toast.makeText(MainActivity.this, "Photo Captured", Toast.LENGTH_SHORT).show(); Uri mPath=data.getData(); Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); mediaScanIntent.setData(mPath); this.sendBroadcast(mediaScanIntent); } }


Debes establecer un valor para este uriToFileInExternalStorage

Código de muestra:

fileName = "image_" + String.valueOf(numImages) + ".jpg"; File output = new File(direct + File.separator + fileName); // create // output while (output.exists()) { // while the file exists numImages++; // increment number of images fileName = "image_" + String.valueOf(numImages) + ".jpg"; output = new File(outputFolder, fileName); } uriToFileInExternalStorage = Uri.fromFile(output);


Esto funcionará en todas las versiones de Android utilizadas en el resultado de la actividad de captura de la cámara

MediaScannerConnection.scanFile (this, new String [] {file.getPath ()}, new String [] {"image / jpeg"}, null);


Pruebe el código proporcionado aquí: agregue la foto a una galería

Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); File f = new File(mCurrentPhotoPath); Uri contentUri = Uri.fromFile(f); mediaScanIntent.setData(contentUri); this.sendBroadcast(mediaScanIntent);

Le sugiero que descargue el ejemplo PhotoIntentActivity para leer y comprender cómo recuperar el valor de mCurrentPhotoPath .