Facebook requestCodes

前端 未结 7 747
予麋鹿
予麋鹿 2021-02-02 11:26

I have an Activity that should handle results from both the Facebook SDK, and from other custom Activities.

Where can I find the requestCodes used by the Facebook SDK, i

7条回答
  •  一向
    一向 (楼主)
    2021-02-02 12:03

    Pass the request code in the sdkInitialize call

    FacebookSdk.sdkInitialize(context, 1200);
    

    Then

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (FacebookSdk.isFacebookRequestCode(requestCode)) {
          //Facebook activity result
          //Do your stuff here
          //Further you can also check if it's login or Share etc by using 
          //CallbackManagerImpl as explained by rajath's answer here
          if (requestCode == CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()) {
              //login
          }
          else if (requestCode == CallbackManagerImpl.RequestCodeOffset.Share.toRequestCode()){
             //share
          }
    }
    

    From the docs

    isFacebookRequestCode(int)

    Returns true if the request code is within the range used by Facebook SDK requests. This does not include request codes that you explicitly set on the dialogs, buttons or LoginManager. The range of request codes that the SDK uses starts at the callbackRequestCodeOffset and continues for the next 100 values.

    sdkInitialize(Context, int)

    This function initializes the Facebook SDK, the behavior of Facebook SDK functions are undetermined if this function is not called. It should be called as early as possible.

    public static synchronized void sdkInitialize(Context applicationContext, int callbackRequestCodeOffset)
    applicationContext The application context
    callbackRequestCodeOffset The request code offset that Facebook activities will be called with. Please do not use the range between the value you set and another 100 entries after it in your other requests.

提交回复
热议问题