gpt4 book ai didi

android - Facebook SDK 4.6.0 FacebookCallback 永远不会被调用

转载 作者:行者123 更新时间:2023-12-05 00:22:02 24 4
gpt4 key购买 nike

在我的项目中,可以使用 ShareDialog 和 SharePhotoContent 将照片发布到 Facebook,如 Facebook docs 所示。 .我需要知道发布是否成功,但 FacebookCallback 实现中的 onSuccess 或 onError 方法永远不会被调用。

这是我的代码:

Button shareFbButton;
ShareDialog shareDialog;
CallbackManager callbackManager;
final int FB_CALLBACK = 101;

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
//...
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(getActivity());
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {

@Override
public void onSuccess(Sharer.Result result) {
Log.d("photo uri", "FR success: " + result.getPostId());

}

@Override
public void onCancel() {
Log.d("photo uri", "FB cancel");
}

@Override
public void onError(FacebookException e) {
Log.d("photo uri", "FB error: " + e.getMessage());
}
}, FB_CALLBACK);

//...
return alertDialog;
}

@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.share_fb_button:
if (ShareDialog.canShow(SharePhotoContent.class)) {
SharePhoto photo = new SharePhoto.Builder()
.setBitmap(image)
.build();
SharePhotoContent linkContent = new SharePhotoContent.Builder()
.addPhoto(photo)
.build();

shareDialog.show(linkContent, ShareDialog.Mode.AUTOMATIC);}
break;
}
}

@Override
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);

if (resultCode == Activity.RESULT_OK)
if(requestCode == FB_CALLBACK)
shareFbButton.setEnabled(false);
}

我尝试使用 REQUEST_CODE 和不使用注册回调,但在这两种情况下都没有结果。

我的 build.gradle:
dependencies {
compile 'com.facebook.android:facebook-android-sdk:4.6.0'
}

AndroidManifest.xml:
    <provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProvider933***********1"
android:exported="true" />

<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />

<activity android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />

我需要一些帮助来解决这个问题,也许我做错了什么。提前致谢。
UPD:ShareDialog 和 FacebookCallback 在 DialogFragment 中实现。

最佳答案

我在我的代码中发现了一个问题。 OnActivityResult 是在 Activity 中调用的,而不是在 DialogFragment 中。所以调用 dialogFragment.onActivityResult(requestCode, resultCode, data) 解决了这个问题。

关于android - Facebook SDK 4.6.0 FacebookCallback 永远不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32619137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com