How To Remove The Facebook Android Sharing Intent By Roger Keays, 2 May 2014

I don't really care why Facebook made a mess of their Android sharing intent. Other developers have already pointed out that their iOS sharing works fine, but their Android product only allows you to share URLs and not text. My guess is they are trying to force developers onto their API because, you know, force makes people so much more motivated and creative and all that.

Whatever.

The real problem is that it makes your app look broken, and fortunately there is a simple solution:

Dump Facebook.

Just cut and paste the code below to launch your share intents and Facebook will not be listed as an option. That way you won't look bad when their share page comes up blank.

// get available share intents List<Intent> targets = new ArrayList<Intent>(); Intent template = new Intent(Intent.ACTION_SEND); template.setType("text/plain"); List<ResolveInfo> candidates = this.getPackageManager(). queryIntentActivities(template, 0); // remove facebook which has a broken share intent for (ResolveInfo candidate : candidates) { String packageName = candidate.activityInfo.packageName; if (!packageName.equals("com.facebook.katana")) { Intent target = new Intent(android.content.Intent.ACTION_SEND); target.setType("text/plain"); target.putExtra(Intent.EXTRA_TEXT, "Text to share")); target.setPackage(packageName); targets.add(target); } } Intent chooser = Intent.createChooser(targets.remove(0), translate("Share Via")); chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, targets.toArray(new Parcelable[]{})); startActivity(chooser);

About Roger Keays