【问题标题】:Sharing a Photo on Facebook Timeline instead of Profile Picture: Android在 Facebook 时间线上分享照片而不是个人资料图片: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();
  }

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

【问题讨论】:

    标签: facebook android-studio


    【解决方案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(); 
    }
    

    就是这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 2012-06-08
      • 1970-01-01
      相关资源
      最近更新 更多