在Facebook时间轴上共享照片而不是个人资料照片:Android

时间:2018-10-15 07:17:26

标签: facebook android-studio

自从过去的几个月以来,我已经通过我的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 个答案:

答案 0 :(得分:0)

很久以前,我发现了这个问题,但是没有发布答案。现在,我发布答案,以防万一有人遇到此类问题。唯一的问题是,不是setClassName(...)通过photoIntent传递packageName和class,而是传递给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(); 
}

仅此而已。