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
.