自从过去的几个月以来,我已经通过我的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();
}
是否有人遇到过类似的问题?任何解决此问题的帮助将不胜感激?谢谢
答案 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();
}
仅此而已。