This post is for helping those you are looking to implement share feature in there android application and ending up with default ShareActionProvider which is too basic and doesn’t look good at all.
Solution to this problem is “chooser”. below is the sample of how you can share any data with ACTION_SEND intent by setting text and subject and at the end call start activity with createChooser.
Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); String text = ""; String url = ""; sendIntent.putExtra(Intent.EXTRA_SUBJECT, text); sendIntent.putExtra(Intent.EXTRA_TEXT, text + " nn" + url); sendIntent.setType("text/plain"); context.startActivity(Intent.createChooser(sendIntent, "Share"));
There are many advantages of using chooser
- Even if you has selected any default application of this action your application will share chooser dialog so that user can select any other application without going to settings
- You have option to set title for your share action chooser dialog
- If no matching application found (I don’t think if this will happen to anyone in real world) then android displays a system message.