在 Facebook 时间线上分享照片而不是个人资料图片:Android

Posted

技术标签:

【中文标题】在 Facebook 时间线上分享照片而不是个人资料图片:Android【英文标题】:Sharing a Photo on Facebook Timeline instead of Profile Picture: Android 【发布时间】:2018-10-15 07:17:26 【问题描述】:

自过去几个月以来,我通过我的 android 应用程序成功地在 Facebook 时间轴上分享了照片。昨天,我了解到,当用户使用应用程序分享照片时,它会将这张照片作为个人资料照片,而不是按原样发布在时间轴上。我查看、调试了代码并观察到 ​​resolveInfo.activityInfo.packageName 返回“com.facebook.timeline.stagingground.ProfilePictureShareActivity”包。这就是为什么它现在将照片共享为个人资料图片的原因。这是我的代码:

try 
     resolveInfo = ActivityFinder.getActivityInfo(WatermarkActivity.this, Intent.ACTION_SEND, "image/*", "facebook");
     Intent photoIntent = new Intent(Intent.ACTION_SEND);
     photoIntent.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
     photoIntent.setType("image/*");
     photoIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + fsTMPPhotoFileName));
     startActivity(photoIntent);
    catch (Exception ex) 
     ex.printStackTrace();
  

有没有其他人遇到过类似的问题?任何解决此问题的帮助将不胜感激?谢谢

【问题讨论】:

【参考方案1】:

我很久以前就发现了这个问题,但没有发布答案。现在,我正在发布答案,以防万一有人遇到此类问题。唯一的问题是,不是 setClassName(...) 传递 packageName 和带有 photoIntent 的类,而是 setPackage(...) 并传递 packageName。这是最终的代码。

try 

   Intent photoIntent = new Intent(Intent.ACTION_SEND);
   photoIntent.setPackage(riInfo.activityInfo.packageName);
   photoIntent.setType("image/*");
   photoIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + fsTMPPhotoFileName));
   startActivity(photoIntent);

 
catch (Exception e) 

     ex.printStackTrace(); 

就是这样。

【讨论】:

以上是关于在 Facebook 时间线上分享照片而不是个人资料图片:Android的主要内容,如果未能解决你的问题,请参考以下文章

Selenium webdriver在facebook时间线上加载来自状态/照片的评论

使用 iOS SDK 将多张照片作为单个帖子上传,例如时间线照片,而不是 Facebook 中的相册

在 iOS 中从 Facebook 获取个人资料照片

如何在 Objective-C 中将照片分享到 Facebook?

在后台将带有标题的照片分享到 Facebook

在没有应用程序的情况下在 Facebook 上分享照片