package in.ceeq.commons; import java.io.IOException; import android.content.Context; import android.hardware.Camera; import android.hardware.Camera.CameraInfo; import android.hardware.Camera.Parameters; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; public class Snapper implements SurfaceHolder.Callback { private SurfaceHolder surfaceHolder; private Camera camera; private Context ctx; void TakePicture(Context ctx, SurfaceView surfaceView){ surfaceHolder = surfaceView.getHolder(); surfaceHolder.addCallback(this); this.ctx = ctx; } @Override public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { Parameters parameters = camera.getParameters(); parameters.setRotation(270); camera.setParameters(parameters); camera.startPreview(); camera.takePicture(null, null, Utils.getJpegCallback(ctx)); } @Override public void surfaceCreated(SurfaceHolder holder) { camera = getFrontCamera(); try { camera.setPreviewDisplay(holder); } catch (IOException exception) { camera.release(); camera = null; } } public static boolean hasFrontCamera() { if (Camera.getNumberOfCameras() >= 2) return true; else return false; } public Camera getFrontCamera() { if (Camera.getNumberOfCameras() >= 2) { try { camera = Camera.open(CameraInfo.CAMERA_FACING_FRONT); return camera; } catch (RuntimeException e) { Log.e("Ceeq Developer", "Camera not Found !"); } } return null; } @Override public void surfaceDestroyed(SurfaceHolder holder) { camera.stopPreview(); camera.release(); camera = null; } }