> This acutally works if I select gmail, although the image name gets > changed to the resource id. However if I choose 'Messaging' from the > intent chooser, it throws a null pointer.
That's very odd. Have you tried the "package/type/name" format instead of "package/id"? Uri uri = Uri.parse("android.resource://com.package.android.test/drawable/icon"); Or, alternatively, there might be something fishy with drawables specifically, copy the image into the raw/ assets and try: Uri uri = Uri.parse("android.resource://com.package.android.test/raw/icon"); I'll give it a test tonight. As I said, the MMS ("Messaging") app requires the image to be read in by BitmapFactory. It might be having trouble with the fact the location is read-only... My guess is that the Email/GMail apps reference the image file directly, and don't try to transform it before sending. On Mon, Jun 14, 2010 at 12:14 PM, Neilz <neilhorn...@gmail.com> wrote: > This whole functionality seems really inconsistent - I now remember > that I've tried this before and given up. > > I tried this code: > > Intent i=new Intent(android.content.Intent.ACTION_SEND); > i.setType("image/jpg"); > i.putExtra(Intent.EXTRA_SUBJECT, "Neils Subject"); > i.putExtra(Intent.EXTRA_TEXT, "Hello Neil, check this out"); > i.putExtra(Intent.EXTRA_STREAM,Uri.parse("file://sdcard/DCIM/Camera/ > 2010-05-02 13.19.32.jpg")); > startActivity(i); > > This sends an email but there's no attachment (it exists!) > > I also tried this code: > > Uri uri = Uri.parse("android.resource://com.package.android.test/" + > R.drawable.icon); > Intent i=new Intent(android.content.Intent.ACTION_SEND); > i.setType("image/jpg"); > i.putExtra(Intent.EXTRA_SUBJECT, "Neils Subject"); > i.putExtra(Intent.EXTRA_TEXT, "Hello Neil, check this out"); > i.putExtra(Intent.EXTRA_STREAM, uri); > startActivity(i); > > This acutally works if I select gmail, although the image name gets > changed to the resource id. However if I choose 'Messaging' from the > intent chooser, it throws a null pointer. > > On Jun 14, 11:55 am, Sean Hodges <seanhodge...@googlemail.com> wrote: >> I'm not sure of the best way to do this; but my understanding of the >> mechanism is that the image is pulled from any given content provider >> URI, just so long as the data returned can be understood by >> BitmapFactory.decodeStream(). >> >> So a simple solution would be to create a new ContentProvider and pass >> a corresponding URI to the Intent (instead of >> "content://content/external/images/..."). You could then send a >> drawable from your app using this custom content provider in the form >> of a ByteArrayOutputStream. >> >> A second approach would be to copy the drawable image to the external >> storage, and use the URI format I gave in the example. >> >> On Mon, Jun 14, 2010 at 10:57 AM, Neilz <neilhorn...@gmail.com> wrote: >> > I've just been looking for something like this myself... a timely >> > topic. >> >> > Please could you edit this code to show how I would send an image from >> > the @drawable folder? >> >> > On Jun 9, 4:29 pm, Sean Hodges <seanhodge...@googlemail.com> wrote: >> >> Mike, >> >> >> I can do a little more than that, I can give you a fully working unit >> >> test with the phone number pre-populated in the From: field: >> >> >> package com.seanhodges.sandbox; >> >> >> import android.content.Intent; >> >> import android.net.Uri; >> >> import android.test.AndroidTestCase; >> >> >> public class SendAnMMS extends AndroidTestCase { >> >> >> public void testSendingAnMMS() throws Exception { >> >> Intent intent = new Intent(Intent.ACTION_SEND); >> >> intent.putExtra("address", "12345"); >> >> intent.putExtra("sms_body", "See attached picture"); >> >> >> intent.putExtra(Intent.EXTRA_STREAM, >> >> Uri.parse("content://media/external/images/thumbnails/0")); >> >> intent.setType("image/png"); >> >> >> // This is added just so the AndroidTestCase launches the >> >> activity >> >> as expected, remove this line in your production code >> >> intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); >> >> >> getContext().startActivity(intent); >> >> } >> >> >> } >> >> >> If the referenced image does not exist, you should get a warning >> >> pop-up when the SMS app launches. >> >> >> On Wed, Jun 9, 2010 at 3:57 PM, mike <hasitharand...@gmail.com> wrote: >> >> > Hi Sean, >> >> >> > didn't get it at all. can you give me an example?? >> >> >> > regards, >> >> > Mike >> >> >> > -- >> >> > You received this message because you are subscribed to the Google >> >> > Groups "Android Developers" group. >> >> > To post to this group, send email to android-developers@googlegroups.com >> >> > To unsubscribe from this group, send email to >> >> > android-developers+unsubscr...@googlegroups.com >> >> > For more options, visit this group at >> >> >http://groups.google.com/group/android-developers?hl=en >> >> > -- >> > You received this message because you are subscribed to the Google >> > Groups "Android Developers" group. >> > To post to this group, send email to android-developers@googlegroups.com >> > To unsubscribe from this group, send email to >> > android-developers+unsubscr...@googlegroups.com >> > For more options, visit this group at >> >http://groups.google.com/group/android-developers?hl=en >> >> > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en