user2872261
user2872261

Reputation: 151

Photo does not show up to gallery

I'm trying to take a photo using the android camera and telling it to save to the phone's gallery. I think i messed up on the path, but i can't seem to find my error. Could someone help me? I'm very novice at android.

Code to call camera

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

code to handle photo and tell it to go to gallery.

 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);

            }
        }

Upvotes: 0

Views: 3426

Answers (3)

Upendra Singh Chauhan
Upendra Singh Chauhan

Reputation: 33

This will work in all android versions used in on activity result of camera capture

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

Upvotes: 1

Paresh Mayani
Paresh Mayani

Reputation: 128448

Try code given here: Add the Photo to a Gallery

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);

I would suggest you to download example PhotoIntentActivity to read and understand how to fetch mCurrentPhotoPath value.

Upvotes: 2

Vinay
Vinay

Reputation: 2415

You need to set a value to this uriToFileInExternalStorage

Sample code:

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); 

Upvotes: 0

Related Questions