Amarnath
Amarnath

Reputation: 1111

Android Share intent - facebook

i want to share something with my friends. so i preferred android share intent. i used,

Intent i=new Intent(android.content.Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(android.content.Intent.EXTRA_TEXT, "my share text");
startActivity(Intent.createChooser(i, "share via"));  

this showing a list of available apps like Facebook, Twitter, Gmail, Message, Skype.. e.t.c.. If i pressed a Twitter in the sense, the above text "my share text" showing in the tweet text box. But if i select Facebook, the status message not showing. i want to set the status message programatically.

how can i achieve this?

Upvotes: 1

Views: 3934

Answers (3)

Swaminathan V
Swaminathan V

Reputation: 4781

Facebook does not allow the pre populating of text in the status box like as twitter. But we can pass the text with url to the Facebook. And it appears below the status box. check below code.

NOTE : Use Facebook SDK to share [ Recommended ].

Native share through intent

 Intent shareIntent= new Intent();
 shareIntent.setAction(Intent.ACTION_SEND);
 shareIntent.putExtra(Intent.EXTRA_TEXT, "http://www.google.com");
 shareIntent.setType("text/plain");
 shareIntent.setPackage("com.facebook.katana");
 startActivity(shareIntent); 

Share through Facebook SDK

ShareDialog shareDialog;

// Sharing in Facebook using the SDK
FacebookSdk.sdkInitialize(this);
shareDialog = new ShareDialog(this);

String title = "Demo Title";
String URL = "http://www.google.com";

ShareLinkContent linkContent = new ShareLinkContent.Builder()
                .setContentTitle(title).setContentDescription(URL)
                .setContentUrl(Uri.parse(URL)).build();

shareDialog.show(linkContent);

Check the link below for reference.

Link 1

Let me know for queries or clarification.

Upvotes: 0

MatheusJardimB
MatheusJardimB

Reputation: 3677

I just built this code and it's working for me:

private void shareAppLinkViaFacebook() {
    String urlToShare = "YOUR_URL";

    try {
        Intent intent1 = new Intent();
        intent1.setClassName("com.facebook.katana", "com.facebook.katana.activity.composer.ImplicitShareIntentHandler");
        intent1.setAction("android.intent.action.SEND");
        intent1.setType("text/plain");
        intent1.putExtra("android.intent.extra.TEXT", urlToShare);
        startActivity(intent1);
    } catch (Exception e) {
        // If we failed (not native FB app installed), try share through SEND
        Intent intent = new Intent(Intent.ACTION_SEND);
        String sharerUrl = "https://www.facebook.com/sharer/sharer.php?u=" + urlToShare;
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse(sharerUrl));
        startActivity(intent);
    }
}

Upvotes: 0

Analizer
Analizer

Reputation: 1644

Facebook SDK has this bug, it's pretty annoying, I know. But if you set a link (and only a link) as "my share text", it will appear in the facebook share box.

Upvotes: 2

Related Questions