Thanks Mark (sorry to have two separate threads going on here). I'll
take a look at the code in your book.

If I succeed, I'll post my code here for others to use.

Links from other readers also much appreciated.

Best wishes,
Anna

On May 7, 1:03 am, Mark Murphy <[email protected]> wrote:
> Anna PS wrote:
> > Thanks Mark. I've tried to intercept the Camera class's onKeyDown
> > event to save a picture and take the URI back to my home activity -
> > code below.
>
> There is no onKeyDown() in the Camera class.
>
> http://developer.android.com/reference/android/hardware/Camera.html
>
>
>
> > Unfortunately, this is crashing with
> > "Java.Lang.UnsupportedOperationException: Unknown URI:
> > content://media/external/images/media".
>
> > Can you advise?
>
> > Anna
>

> >    public boolean onKeyDown(int keyCode, KeyEvent event) {
> >            ImageCaptureCallback iccb = null;
> >            Uri uri = null;
> >            if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
> >                    Log.e(LOG_TAG, "KeyEvent.KEYCODE_DPAD_CENTER pressed");
> >                    try {
> >                            String filename = timeStampFormat.format(new 
> > Date());
> >                            ContentValues values = new ContentValues();
> >                            values.put(Media.TITLE, filename);
> >                            values.put(Media.DESCRIPTION, "Image capture by 
> > camera");
> >                            uri = 
> > getContentResolver().insert(Media.EXTERNAL_CONTENT_URI,
> >                                            values);
> >                            iccb = new 
> > ImageCaptureCallback(getContentResolver()
> >                                            .openOutputStream(uri));
> >                    } catch (Exception ex) {
> >                            ex.printStackTrace();
> >                            Log.e(getClass().getSimpleName(), 
> > ex.getMessage(), ex);
> >                    }
> >            }
> >            if (keyCode == KeyEvent.KEYCODE_BACK) {
> >                    return super.onKeyDown(keyCode, event);
> >            }
>
> >            if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
> >                    camera.takePicture(mShutterCallback, 
> > mPictureCallbackRaw, iccb);
> >                    Log.d(LOG_TAG,
> >                                    "Taken picture from 
> > KeyEvent.KEYCODE_DPAD_CENTER, uri = "
> >                                                    + uri.toString());
> >                    Intent i = new Intent(CameraActivity.this, Home.class);
> >                    i.setData(uri);
> >                    startActivity(i);
> >                    return true;
> >            }
> >            return false;
> >    }
>
> I don't know how this code is being executed. I don't know what
> ImageCaptureCallback is. And I'm still not 100% sure why you're wanting
> a URI out of the deal.
>
> For some sample Camera-using code, you can grab the source code to my
> Advanced Android book:
>
> http://commonsware.com/AdvAndroid/
>
> I can tell you that your code above has two keyCode ==
> KeyEvent.KEYCODE_DPAD_CENTER items, which seems a bit odd given the
> structure of the method.
>
> If I were in your shoes, and going only by the limited use case you
> documented. I would:
>
> -- Use the Camera API to get the byte array
>
> -- Write the byte array to a JPEG file on the SD card
>
> -- Use that file as the basis for your thumbnail
>
> -- Use that file as the attachment in your email
>
> -- Let the Media content provider deal with indexing your image on its
> own time, or delete the image once it's emailed if you no longer need it
>
> It may be you have other criteria that cannot be met by the above
> procedure, in which case I apologize.
>
> --
> Mark Murphy (a Commons 
> Guy)http://commonsware.com|http://twitter.com/commonsguy
>
> _The Busy Coder's Guide to Android Development_ Version 2.0 Available!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to