我想使用facebook SDK 4.0从我的Android应用程序共享图像。我让它与ShareDialog一起使用,但是当用户没有安装FB应用程序时,根据developers.facebook,SDK应该使用Web Share对话框代替:
在过去版本的Android SDK中,你的应用程序必须先检查一个本机安装的Facebook应用程序,然后才能打开共享对话框。如果此人没有安装应用程序,你必须提供自己的代码来调用回退对话框。
现在,SDK会自动检查本机Facebook应用程序。如果未安装,则会启动Web共享对话框:
但是当我删除FB应用程序并尝试共享时什么都没有发生。
这是我的代码:
ShareDialog shareDialog = new ShareDialog(this);
BitmapFactory.Options bmOptions = new BitmapFactory.Options();
bmOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap image = BitmapFactory.decodeFile(imagePath, bmOptions);
SharePhoto photo = new SharePhoto.Builder().setBitmap(image).build();
SharePhotoContent content = new SharePhotoContent.Builder().addPhoto(photo).build();
shareDialog.show(content, ShareDialog.Mode.AUTOMATIC);
编辑
有没有办法在没有安装facebook应用程序的情况下在facebook上分享照片?
试试这个:
我也遇到了同样的问题,我可以说facebook的SharePhotoContent API有一些问题。您可以使用ShareLinkContent共享图像。
ShareLinkContent linkContent = new ShareLinkContent.Builder()
.setImageUrl("Your url")
.build();
shareDialog.show(linkContent);
我找到了解决方案:
BitmapFactory.Options bmOptions = new BitmapFactory.Options();
bmOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap image = BitmapFactory.decodeFile(imagePathForShare, bmOptions);
SharePhoto photo = new SharePhoto.Builder().setBitmap(image).build();
SharePhotoContent content = new SharePhotoContent.Builder().addPhoto(photo).build();
Toast.makeText(getApplicationContext(), getString(R.string.facebook_uploading), Toast.LENGTH_SHORT).show();
ShareApi.share(content, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result)
{
Toast.makeText(getApplicationContext(), getString(R.string.facebookSuccessful), Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel()
{
Log.v("FACEBOOK_TEST", "share api cancel");
}
@Override
public void onError(FacebookException e)
{
Log.v("FACEBOOK_TEST", "share api error " + e);
}
});
请仔细阅读SDK文档。如果没有安装Facebook应用程序,您将无法使用共享对话框共享照片。
推荐:https://developers.facebook.com/docs/sharing/android
照片
人们可以通过共享对话框或自定义界面将应用程序中的照片共享到Facebook。
照片大小必须小于12MB
人们需要安装原生Facebook for Android应用程序,版本7.0或更高版本