Android 未在facebook上共享文本标题

Android 未在facebook上共享文本标题,android,android-intent,Android,Android Intent,我想在Facebook上共享带有标题的照片,但文本标题不在Facebook上共享。是否有任何方法可以使用send intent在Facebook上共享带有照片的文本 List<Intent> targetedShareIntents = new ArrayList<Intent>(); Intent share = new Intent(android.content.Intent.ACTION_SEND); share.setType("image/jpeg"); Li

我想在Facebook上共享带有标题的照片,但文本标题不在Facebook上共享。是否有任何方法可以使用send intent在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);
List targetedShareContents=new ArrayList();
意向共享=新意向(android.content.Intent.ACTION\u SEND);
share.setType(“图像/jpeg”);
List resInfo=getPackageManager().queryInputActivities(共享,0);
如果(!resInfo.isEmpty()){
对于(ResolveInfo:resInfo){
Intent targetedShare=新意图(android.content.Intent.ACTION\u SEND);
targetedShare.setType(“image/jpeg”);//在这里输入mime类型
if(info.activityInfo.packageName.toLowerCase().contains(nameApp)| info.activityInfo.name.toLowerCase().contains(nameApp)){
targetedShare.putExtra(Intent.EXTRA_主题,“虚拟镜像照片”);
targetedShare.putExtra(Intent.EXTRA_TEXT,“此照片由虚拟镜像应用程序创建。\n\nInfoshore团队”);
targetedShare.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(新文件(imagePath));
targetedShare.setPackage(info.activityInfo.packageName);
targetedShareContents.add(targetedShare);
isappaviable=true;
}
}
Intent chooserecontent=Intent.createChooser(targetedShareContents.remove(0),“选择要共享的应用程序”);
选择content.putExtra(Intent.EXTRA_INITIAL_INTENTS,targetedShareContents.toArray(新包裹[]{}));
开始触觉(选择内容);

根据Facebook的平台政策,您不能使用
Intent.EXTRA_TEXT
。这通常被认为是一个bug,但根据提交的bug报告,Facebook清楚地提到情况并非如此(它不是bug)

您可以阅读更多关于他们具体的平台政策IV.2的信息

引自平台政策IV.2:

不得预填充与以下内容相关的任何字段 产品,除非用户在早期手动生成内容 工作流:流故事(用于 Facebook.streamPublish和FB.Connect.streamPublish以及消息 stream.publish)、照片(标题)、视频(说明)的参数, 注释(标题和内容)、链接(注释)和Jabber/XMPP

这些字段供用户表达自己。预填充 这些字段会侵蚀用户语音的真实性


底线是(不幸的),您不能使用
意图将标题添加到正在上载的照片中。唯一的方法是将Facebook SDK集成到您的应用程序中。要查看他们在示例应用程序Hackbook中的操作示例,请参阅并向下滚动到第263行,在该行中,他们处理上载带有标题的照片。

Platform策略和Hackbook链接被破坏。@Gabin:修复链接。感谢您指出::-)这是一个错误,如果Facebook不尊重意图参数,它就是一个错误-没有任何策略可以覆盖它。如果他们不想尊重意图,他们不应该注册。这个特定的FB错误破坏了预期的行为Android intent system.p.s.到Hackbook的链接被破坏了。这很令人伤心。特别是因为这个功能显然存在于Facebook应用程序的iOS版本上。。。