onActivityResult 请求代码 Facebook SDK

onActivityResult requestcode Facebook SDK

我正在构建一个 Android 应用程序,它使用 Facebook SDK 以便人们可以共享 URL。我在 activity 中将 onActivityResult 用于多项操作,因此我在 requestCode 上使用了一个开关,以便我知道如何处理每个 activity 结果。例如,当我取消共享 facebook post 时,如何获得正确的 requestCode?这是我目前的代码:

import com.facebook.CallbackManager;

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    switch (requestCode) {
        case 1: 
        ... doing some not-facebook-related stuff here
        case 2:
        ... doing some other not-facebook-related stuff here


//      case ??? : 
//      callbackManager.onActivityResult(requestCode, resultCode, data);

那么正确的 requestCode 是什么?我如何获得它?

尝试改用共享对话框

new ShareDialog(this).registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
            @Override
            public void onSuccess(Sharer.Result result) {

            }

            @Override
            public void onCancel() {

            }

            @Override
            public void onError(FacebookException error) {

            }
        });

当您取消分享时,您将进入 onCancel 回调。 同时取消注释

callbackManager.onActivityResult(requestCode, resultCode, data);

来自 onActivityResult 方法。

这是我在类似案例中使用的:

    if (requestCode == CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()) {
        // call callbackManager
    }

您还可以设置FacebookSdk使用的requestcodes的偏移量:

FacebookSdk.sdkInitialize(getApplicationContext(), 10000);

顺便说一下,我在查看源代码时发现了这个,所以我不确定 "safe" 这个选项是怎么回事,因为 CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode() 不是 "public" 记录的方法.