Search code examples
androidcameraandroid-intentandroid-cameraandroid-camera-intent

How to capture an image and store it with the native Android Camera


I am having a problem capturing an image and storing it from the native camera app. Here is a sample of some of my code.

_path = Environment.getExternalStorageDirectory() + "make_machine_example.jpg";
File file = new File( _path );
Uri outputFileUri = Uri.fromFile( file );

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );

startActivityForResult( intent, 0 );

After the picture has been taken and I'm returned back to my original Activity, When I navigate to my sd card via Android DDMS File Explorer the picture is not there. Anyone know why this is not being saved?


Solution

  • Have you checked what the output of Environment.getExternalStorageDirectory() is, because if it does not contain a trailing file seperator (/) then your image will end up in a directory that does not reside on the SDcard such as:

     /mnt/sdcardmake_machine_example.jpg
    

    When what you really want is:

     /mnt/sdcard/make_machine_example.jpg
    

    Try this code instead:

     _path = Environment.getExternalStorageDirectory() + File.separator +  "make_machine_example.jpg";