Photos not saving anywhere?

  • Replies:5
  • OpenNot stickiedUnanswered
  • Forum posts: 1

Jul 26, 2012 12:41:01 PM via Website

I am developing an application using custom camera.
Application work fine but when i click capture button image doesnt save anywhere on device(Sony Erricsson Xperia S).
I added the permission to write in menifest also

Take Photo class

import java.text.SimpleDateFormat;
import java.util.Date;

import android.content.Context;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.Toast;

public class TakePhoto extends Activity {
private Camera mCamera;
private CameraPreview mPreview;
public static final int MEDIA_TYPE_IMAGE = 1;
private String test="test";

private PictureCallback mPicture = new PictureCallback() {

public void onPictureTaken(byte[] data, Camera camera) {

File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
if (pictureFile == null) {
"Error creating media file, check storage permissions: ");
} else {
"creating media file, check storage permissions: ");
try {
//FileOutputStream fos = new FileOutputStream(pictureFile);
FileOutputStream fos = openFileOutput(test, Context.MODE_PRIVATE);
Log.d("TakePhoto", "Output Media File "+data);
} catch (FileNotFoundException e) {
Log.d("TakePhoto", "File not found: " + e.getMessage());
} catch (IOException e) {
Log.d("TakePhoto", "Error accessing file: " + e.getMessage());


public void onCreate(Bundle savedInstanceState) {

// Create an instance of Camera
mCamera = getCameraInstance();
// Create our Preview view and set it as the content of our activity.
mPreview = new CameraPreview(this, mCamera);
FrameLayout preview = (FrameLayout) findViewById(;

Button captureButton = (Button) findViewById(;
captureButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// get an image from the camera
mCamera.takePicture(null, null, mPicture);
Toast.makeText(getBaseContext(), "sup", Toast.LENGTH_SHORT)


/** A safe way to get an instance of the Camera object. */
public static Camera getCameraInstance() {
Camera c = null;
try {
c =; // attempt to get a Camera instance
} catch (Exception e) {
// Camera is not available (in use or does not exist)
Log.d("TakePhoto", "Camera is not Avialable");
return c; // returns null if camera is unavailable

/** Create a file Uri for saving an image or video */
private static Uri getOutputMediaFileUri(int type) {
return Uri.fromFile(getOutputMediaFile(type));

/** Create a File for saving an image or video */
private static File getOutputMediaFile(int type) {
// To be safe, you should check that the SDCard is mounted
// using Environment.getExternalStorageState() before doing this.

File mediaStorageDir = new File(
// This location works best if you want the created images to be shared
// between applications and persist after your app has been uninstalled.

// Create the storage directory if it does not exist
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("TakePhoto", "failed to create directory");
return null;
} else {
Log.d("TakePhoto", "Directory exist");


// Create a media file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile;

mediaFile = new File(mediaStorageDir.getPath() + File.separator
+ "IMG_" + timeStamp + ".jpg");

Log.d("TakePhoto", mediaFile.toString());

return mediaFile;

Camera Preview class


import android.content.Context;
import android.hardware.Camera;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

/** A basic Camera preview class */
public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {

private SurfaceHolder mHolder;
private Camera mCamera;

public CameraPreview(Context context, Camera camera) {
mCamera = camera;

// Install a SurfaceHolder.Callback so we get notified when the
// underlying surface is created and destroyed.
mHolder = getHolder();
// deprecated setting, but required on Android versions prior to 3.0

public void surfaceCreated(SurfaceHolder holder) {
// The Surface has been created, now tell the camera where to draw the preview.
try {
} catch (IOException e) {
Log.d("CameraPreview", "Error setting camera preview: " + e.getMessage());

public void surfaceDestroyed(SurfaceHolder holder) {
// empty. Take care of releasing the Camera preview in your activity.

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
// If your preview can change or rotate, take care of those events here.
// Make sure to stop the preview before resizing or reformatting it.

if (mHolder.getSurface() == null){
// preview surface does not exist

// stop preview before making changes
try {
} catch (Exception e){
// ignore: tried to stop a non-existent preview

// set preview size and make any resize, rotate or
// reformatting changes here

// start preview with new settings
try {

} catch (Exception e){
Log.d("CameraPreview", "Error starting camera preview: " + e.getMessage());
  • Forum posts: 1,811

Aug 15, 2012 5:32:38 PM via Website

Hey Jeremiah..any way you can help out on this?
  • Forum posts: 41

Aug 28, 2012 12:09:10 PM via Website

This is really great post and very informative…
  • Forum posts: 6

Aug 29, 2012 4:37:26 AM via App

A better way for us to determine the issue would be a logcat.
  • Forum posts: 8

Aug 30, 2012 2:44:55 AM via Website

3 days ago ... When we created our premier OIL RIG, Oakley Sunglasses Outletwe put an embargo on conventional thinking and made fossil fuel out of ordinary designs. This Oakley ...