Juppy
Juppy

Reputation: 111

Take a picture from camera

i have a problem with code of take a picture and save. It crash when i launchCamera(). Can you help me please?

    private void launchCamera() {
     try {

         mOutputFile = File.createTempFile("prova", null);

          Intent intentCamera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

           intentCamera.putExtra(MediaStore.EXTRA_OUTPUT,
                 Uri.fromFile(mOutputFile));

           startActivityForResult(intentCamera, CAMERA_REQUEST);
     } catch (Exception e) {
         Toast t = Toast.makeText(this, "ERROR:\n" + e.toString(), Toast.LENGTH_LONG);
         t.show();
     }
}

Upvotes: 0

Views: 422

Answers (3)

baloo
baloo

Reputation: 217

I am using this piece of code try it out :

/**
 * This method is used to start the camera activity and save the image taken as the imagename passed 
 * 
 * @param imagename : this is the name of the image which will be saved 
 */
private void clickPicture(String imagename) {
    Intent getCameraImage = new Intent("android.media.action.IMAGE_CAPTURE");
    File cameraFolder;
    if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
        cameraFolder = new File(android.os.Environment.getExternalStorageDirectory(),"myfolder/");
    else
        cameraFolder= context.getCacheDir();
    if(!cameraFolder.exists())
        cameraFolder.mkdirs();
    String imageFileName = imagename;
    File photo = new File(Environment.getExternalStorageDirectory(), "myfolder/" + imageFileName);
    getCameraImage.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
    Uri.fromFile(photo);
    startActivityForResult(getCameraImage, 1);

}

and add the permisson in your manifest file :

 <uses-permission android:name="android.permission.CAMERA" ></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Upvotes: 1

Sujay
Sujay

Reputation: 426

To access the device camera, you must declare the CAMERA permission in your Android Manifest

Upvotes: 0

Emil Adz
Emil Adz

Reputation: 41099

Maybe you didn't added the necessary permissions in the manifest file:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

Also I would suggest you to go over this blog post I wrote on this topic of taking a picture using the build-in Camera Activity:

Take Picture with build in Camera Activity

Upvotes: 0

Related Questions