Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Share Via Dialog

Tags:

android

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?

like image 901
Realn0whereman Avatar asked Aug 24 '10 01:08

Realn0whereman


People also ask

How do I share a video URL on Android?

Under the video player, tap Share . Select Copy link, or select an app to share the link directly via that app.

How do I send intent to another app?

Yes , you can send the intent to any app you like but its upto the receiving application to handle it. Few apps may crash receiving it. pick any one and try it by passing as a second argument to the intent constructor defined above and then call startActivity method. hope it helps you.

How do I transfer data from one Android app to another?

Android uses the action ACTION_SEND to send data from one activity to another, even across process boundaries. You need to specify the data and its type. The system automatically identifies the compatible activities that can receive the data and displays them to the user.


3 Answers

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"));
like image 154
Ehxor Avatar answered Oct 24 '22 00:10

Ehxor


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.

like image 38
DiscDev Avatar answered Oct 24 '22 00:10

DiscDev


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.

like image 4
EboMike Avatar answered Oct 24 '22 02:10

EboMike