Android Share Via Dialog

I've seen the "share via" dialogs that are in apps like TFLN (texts from last night). Looks like this: share dialog http://garr.me/wp-content/uploads/2009/12/sharevia.jpg

I am looking to share text. Can someone point me in the right direction? Is this done with intents?


Solution 1:

This is indeed done with Intents.

For sharing an image, like in the example picture, it would be something like this:

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");

share.putExtra(Intent.EXTRA_STREAM,
  Uri.parse("file:///sdcard/DCIM/Camera/myPic.jpg"));

startActivity(Intent.createChooser(share, "Share Image"));

For text you would use something like:

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_TEXT, "I'm being sent!!");
startActivity(Intent.createChooser(share, "Share Text"));

Solution 2:

I was having issues with the accepted answer. What worked for me was creating a file from the path, then parsing the URI of the file, like:

Uri.fromFile(new File(filePath));

instead of

Uri.parse(filePath)

Just in case anyone is having the same issue.

Solution 3:

Yes. You need to provide an Activity with an intent filter that can handle objects of the MIME Type image/jpeg (say, if you wanted to support sharing JPEG images), and and action of presumably ACTION_SEND.

Many of the built-in Android apps are open-source, you can check the manifest file of the Messaging app to see what intent filters it is using.