Android Facebook 分享意向

Android Facebook Share Intent

我一直在使用以下代码分享到 facebook 和任何其他应用程序:

private void initShareIntent(String type, String title, String link) {
        boolean found = false;
        Intent share = new Intent(android.content.Intent.ACTION_SEND);
        share.setType(Constants.MIMETYPE_TEXT_PLAIN);

        List<ResolveInfo> resInfo = getContext().getPackageManager().queryIntentActivities(share, 0);
        if (!resInfo.isEmpty()) {
            for (ResolveInfo info : resInfo) {
                if (info.activityInfo.packageName.toLowerCase().contains(type) ||
                        info.activityInfo.name.toLowerCase().contains(type)) {
                    if (title != null && link != null) {
                        share.putExtra(Intent.EXTRA_SUBJECT, unescapeTitle(title));
                        share.putExtra(Intent.EXTRA_TEXT, link.replace(Constants.HTTP_SCHEME, Constants.HTTPS_SCHEME));
                        share.setPackage(info.activityInfo.packageName);
                    }
                    found = true;
                    break;
                }
            }
            if (!found)
                return;

            getContext().startActivity(share);
        }
    }

我提供单词 facebook 作为类型变量。在最长的时间内,代码运行良好并打开了 facebook 共享对话框。

但是现在,相同的代码打开 Messenger 而不是启动共享。有没有办法强制它打开 facebook 而不是 Messenger?

if info.activityInfo.packageName.toLowerCase().startsWith("com.facebook.katana"))
{
    intent.setPackage(info.activityInfo.packageName); 
    facebookAppFound = true;
    break;
}