diff --git a/src/com/nitobi/phonegap/CameraHandler.java b/src/com/nitobi/phonegap/CameraHandler.java new file mode 100644 index 00000000..5a065b4f --- /dev/null +++ b/src/com/nitobi/phonegap/CameraHandler.java @@ -0,0 +1,37 @@ +package com.nitobi.phonegap; + +import java.io.OutputStream; +import java.text.SimpleDateFormat; + +import android.hardware.Camera; +import android.hardware.Camera.PictureCallback; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; + +public class CameraHandler implements PictureCallback{ + + + private OutputStream oStream; + BitmapFactory photoLab; + + CameraHandler(OutputStream output) + { + oStream = output; + } + + public void onPictureTaken(byte[] graphic, Camera arg1) { + try { + oStream.write(graphic); + oStream.flush(); + oStream.close(); + } + catch (Exception ex) + { + //TO-DO: Put some logging here saying that this epic failed + } + + // Do some other things, like post it to a service! + } + + +} diff --git a/src/com/nitobi/phonegap/CameraListener.java b/src/com/nitobi/phonegap/CameraListener.java new file mode 100644 index 00000000..20f425c4 --- /dev/null +++ b/src/com/nitobi/phonegap/CameraListener.java @@ -0,0 +1,52 @@ +package com.nitobi.phonegap; + +import java.io.FileNotFoundException; +import java.io.OutputStream; +import java.text.SimpleDateFormat; +import java.util.Date; + +import android.content.ContentValues; +import android.content.Context; +import android.hardware.Camera; +import android.hardware.Camera.ShutterCallback; +import android.net.Uri; +import android.provider.MediaStore.Images.Media; + +public class CameraListener implements ShutterCallback{ + + private Camera mCam; + private CameraHandler camHand; + private SimpleDateFormat timeStampFormat = new SimpleDateFormat("yyyyMMddHHmmssSS"); + private Context mCtx; + private Uri target = Media.EXTERNAL_CONTENT_URI; + + CameraListener(Context ctx){ + mCam = Camera.open(); + mCtx = ctx; + } + + public void snap() + { + String filename = timeStampFormat.format(new Date()); + ContentValues values = new ContentValues(); + values.put(Media.TITLE, filename); + values.put(Media.DESCRIPTION, "PhoneGap"); + Uri uri = mCtx.getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values); + try + { + OutputStream output = (OutputStream) mCtx.getContentResolver().openOutputStream(uri); + camHand = new CameraHandler(output); + mCam.takePicture(this, null, camHand); + } + catch (Exception ex) + { + /*TODO: Do some logging here */ + } + } + + public void onShutter() { + /* This is logged */ + + } + +}