Search code examples
androidfacebooktwittershare

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


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"


Solution

  • 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. :)