I am trying to receive an image from the Android Gallery via an ACTION_SEND intent. I have set the proper intent filters and the Gallery opens my app. Now I want to know how to
Not sure about the SEND intent, but when handling returns from PICK intents to the MediaStore for a photo, it goes something like:
Uri selectedImage = intent.getData();
AssetFileDescriptor fd = getContentResolver()
.openAssetFileDescriptor(selectedImage, "r");
FileInputStream s = fd.createInputStream();
// your image data processing code here
Be careful though - you can be working with 5+ megapixel files, which can be quite large (especially if you're uncompressing them to bitmaps to process), and your memory is pretty limited.
Found this in the Picasa source. It gives the proper path of the image.
Intent intent = getIntent();
if (Intent.ACTION_SEND.equals(intent.getAction())) {
Bundle extras = intent.getExtras();
if (extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM);
String scheme = uri.getScheme();
if (scheme.equals("content")) {
String mimeType = intent.getType();
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(uri, null, null, null, null);
cursor.moveToFirst();
String filePath = cursor.getString(cursor.getColumnIndexOrThrow(Images.Media.DATA));