2

我想分享带有标题的照片,但在 Facebook 上没有分享文字标题有没有办法使用发送意图在 Facebook 上分享带有照片的文字。

List<Intent> targetedShareIntents = new ArrayList<Intent>();
Intent share = new Intent(android.content.Intent.ACTION_SEND);
share.setType("image/jpeg");
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(share, 0);
if (!resInfo.isEmpty()){
    for (ResolveInfo info : resInfo) {
        Intent targetedShare = new Intent(android.content.Intent.ACTION_SEND);
        targetedShare.setType("image/jpeg"); // put here your mime type
        if (info.activityInfo.packageName.toLowerCase().contains(nameApp) || info.activityInfo.name.toLowerCase().contains(nameApp)) {
            targetedShare.putExtra(Intent.EXTRA_SUBJECT, "Virtual Mirror Photo");
            targetedShare.putExtra(Intent.EXTRA_TEXT,"This photo is created by Virtual Mirror App.\n\nInfoshore Team");
            targetedShare.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(imagePath)) );
            targetedShare.setPackage(info.activityInfo.packageName);
            targetedShareIntents.add(targetedShare);
            isAppAvaiable = true;
        }
    }
    Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Select app to share");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{}));
    startActivity(chooserIntent);
4

1 回答 1

5

根据 Facebook 的平台政策,您不能使用 Intent.EXTRA_TEXT. 它通常被认为是一个错误,但根据此处提交的错误报告以及此处 Facebook 明确提到情况并非如此(这不是错误)。

您可以详细了解他们的平台政策,特别是平台政策 IV.2

引自平台政策 IV.2:

您不得预先填写与以下产品关联的任何字段,除非用户在工作流程的早期手动生成内容:流故事(Facebook.streamPublish 和 FB.Connect.streamPublish 的 user_message 参数,以及流的 message 参数。发布)、照片(标题)、视频(描述)、注释(标题和内容)、链接(评论)和 Jabber/XMPP。

这些字段旨在让用户表达自己。预先填写这些字段会削弱用户语音的真实性。

底线是(不幸的是),你不能为你上传的照片添加标题Intents。您可以做到这一点的唯一方法是将 Facebook SDK 集成到您的应用程序中。要查看他们如何在他们的示例应用程序Hackbook中执行此操作的示例,请参阅 此链接 并向下滚动到第263行,在那里他们处理上传带有标题的照片。

于 2012-11-23T05:42:51.877 回答