Android app - Adding a "share" button to share the app on social networks

david picture david · Nov 27, 2013 · Viewed 25.5k times · Source

I have an app, and I'd like to add a share button to it. Once the button is clicked, I'd like it to open the following window:

enter image description here

Then the user will choose where to share it and it will display the following default message: "Just found this great app! Find it here:https://play.google.com/store/apps/details?id=com.ideashower.readitlater.pro"

Can you please tell me how to do it?

Answer

Ankit Popli picture Ankit Popli · Nov 27, 2013

Solution 1: Launch ACTION_SEND Intent

When launching a SEND intent, you should usually wrap it in a chooser (through createChooser(Intent, CharSequence)), which will give the proper interface for the user to pick how to send your data and allow you to specify a prompt indicating what they are doing.

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);

# change the type of data you need to share, 
# for image use "image/*"
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, URL_TO_SHARE);
startActivity(Intent.createChooser(intent, "Share"));

Solution 2: Use ShareActionProvider

If you are just looking to add a Share button in Overflow Menu, also have a look at ShareActionProvider.

public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.share, menu);
    MenuItem item = menu.findItem(R.id.share_item);
    actionProvider = (ShareActionProvider) item.getActionProvider();

    // Create the share Intent
    String shareText = URL_TO_SHARE;
    Intent shareIntent = ShareCompat.IntentBuilder.from(this)
        .setType("text/plain").setText(shareText).getIntent();
    actionProvider.setShareIntent(shareIntent);
    return true;
}

Hope this helps. :)