I am having a few issues with sharing email attachments....

My activity has several intent filters that handle multiple MIME-types
(pdf, doc, xls, etc.). If I get an email with a .pdf attachment, I can
share it with my activity, but inside my activity, I am not sure how
to get the MIME type of what is being shared. I can get the
inputstream, but I get a permission issue when trying to access
getType(uri).

Here is my code to get the input stream:

Intent shareIntent = getIntent();
InputStream is =
getContentResolver().openInputStream(shareIntent.getData());

If I then print out the value of is.available(), it appears to be the
appropriate size. In other words, the data is there.

However, if I call:
getContentResolver().getType(shareIntent.getData());

I get the following exception:
ERROR/DatabaseUtils(7944): java.lang.SecurityException: Permission
Denial: reading com.android.email.provider.EmailProvider uri
content://com.android.email.provider/attachment/48 from pid=8048,
uid=10114 requires com.android.email.permission.ACCESS_PROVIDER

The problem is, if I simply have the byte array, I have no idea what
extension the final file should be.

I know there are apps that can get not only the MIME-type, but can get
the entire filename. For example, if I try to open a pdf from my
inbox, and I open it with QuickOffice, I can see the filename at the
top of quickoffice.

Can someone please explain to me what I am doing wrong, and at least
point me in the right direction? Opening email attachments in another
application seems like such a simple feature...

-- 
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