好吧,伙计们,我不知道我做错了什么,我对这个问题失去了理智。我刚开始使用Facebook Android SDK,我不知道自己做错了什么。
我正在开发一个需要在Facebook上分享图片的应用程序。首先我尝试了分享状态。它运行得很好。
然后我试着根据文件上的信息分享照片。什么也没发生。
这是我的清单。
<activity android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<provider android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProvider1501607393******"
android:exported="true"/>
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
应用程序id正确。我在AndroidManifest.xml中设置了一个ContentProvider
这是我的Java。
Bitmap image2 = BitmapFactory.decodeResource(getResources(), R.drawable.android);
SharePhoto photo = new SharePhoto.Builder().setBitmap(image2).build();
SharePhotoContent content = new SharePhotoContent.Builder().addPhoto(photo).build();
ShareDialog dialog = new ShareDialog(MainActivity.this);
dialog.show(content);
请帮忙。
经过深思熟虑,我终于解决了这个问题。为了使图像共享正常工作,应该记住两件事。
1.在AndroidManifest.xml中设置ContentProvider。
<provider android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProvider1501607393******"
android:exported="true"/>
其中1501607393******是您的应用程序代码。
2.在测试你的应用程序之前,先在设备中安装官方的Facebook应用程序。
试试这段代码也许对你有用。
public boolean sharePhoto(Bitmap image, String description) {
if (ShareDialog.canShow(SharePhotoContent.class)) {
SharePhoto photo = new SharePhoto.Builder().setBitmap(image)
.build();
SharePhotoContent content = new SharePhotoContent.Builder()
.addPhoto(photo).build();
shareDialog.show(content);
return true;
}
return false;
}
亲爱的Birat Bade Shrestha,对于照片、新闻推送等,您必须向facebook特别提交。默认情况下,应用程序允许使用public_profile。但对于任何其他用途,您必须提交,如果FB批准提交,您可以访问。
https://developers.facebook.com/docs/facebook-login/review/how-to-submit