Richiesta di Facebook

Ho un'attività che dovrebbe gestire i risultati sia dall'SDK di Facebook, sia da altre attività personalizzate.

Dove posso trovare i codici di richiesta utilizzati da SDK di Google, per non utilizzare lo stesso per le mie attività?

  • Android SimpleCursorAdapter non si aggiorna quando i database cambiano
  • utilizzare registerReceiver per non attività e class di servizio non
  • La schermata di attività non ruota quando ruota il cellulare
  • Come triggersre e distriggersre la function WebView in modo sicuro, se necessario
  • Il video non è visualizzato in Webview
  • Come distriggersre il suono dell'otturatore della telecamera sul telefono android
  • Dovrei dirle separatamente in onActivityResult usando il loro onActivityResult per cui devono essere unici.

  • Come aggiungere una copia di XML in modo dinamico
  • Impostazione del colore di un object Paint nella visualizzazione personalizzata
  • Invio di immagini e video al server in android
  • Importzione della chiave privata esistente in BKS Keystore
  • Errore di installazione: INSTALL_FAILED_MISSING_SHARED_LIBRARY sul fuoco Kindle
  • come faccio a creare il database nella mia applicazione Android?
  • 7 Solutions collect form web for “Richiesta di Facebook”

    Passare il codice di richiesta nella chiamata sdkInitialize

     FacebookSdk.sdkInitialize(context, 1200); 

    Poi

     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 } } 

    Dai documenti

    isFacebookRequestCode (int)

    Restituisce true se il codice di richiesta è all'interno del field utilizzato dalle richieste di SDK di Facebook. Questo non include i codici di richiesta impostati esplicitamente nelle windows di dialogo, nei pulsanti o nel LoginManager. L'intervallo di codici di richiesta che l'SDK utilizza inizia con callbackRequestCodeOffset e continua per i successivi 100 valori.

    sdkInitializza (context, int)

    Questa function inizializza l'SDK di Facebook, il comportmento delle funzioni di SDK di Facebook è indeterminato se questa function non viene chiamata. Dovrebbe essere chiamato il più presto ansible.

    public static synchronized void sdkInitialize(Context applicationContext, int callbackRequestCodeOffset)
    applicationContext Il context dell'applicazione
    callbackRequestCodeOffset Il codice di richiesta offset che le attività di Facebook saranno chiamate con. Non utilizzare l'intervallo tra il valore impostato e altri 100 voci successivamente nelle altre richieste.

    Andare a CallbackManagerImpl.RequestCodeOffset. Personalmente ho usato un codice come questo per evitare comportmenti indesiderati.

     if (requestCode == CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()) { callbackManager.onActivityResult(requestCode, resultCode, data); } 

    Prova questo:

     @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //Log.iClassMethod(); switch(requestCode) { case 1: if (resultCode == Activity.RESULT_OK) { // do something ... } break; case ...: if (resultCode == Activity.RESULT_OK) { // do something ... } break; case Session.DEFAULT_AUTHORIZE_ACTIVITY_CODE: { Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); Log.i("Facebook"); } break; } } 

    È ansible impostare i propri codici di richiesta per disambiguare. Tutte le classi OpenRequest e NewPermissionsRequest richiedono un parametro requestCode:

    setRequestCode

    Offrendo un'alternativa se si utilizza il login FB tramite LoginButton

    1. Impostare il codice di richiesta del button di login
    2. Utilizza il codice di richiesta per differenziare l'attività

     private LoginButton mFacebookLoginButton; private static int RC_FB_SIGN_IN; @Override protected void onCreate(Bundle savedInstanceState) { ... mFacebookLoginButton = (LoginButton) findByViewId(R.id.fb_login_button); mFacebookLoginButton.registerCallback(...) RC_FB_SIGN_IN = mFacebookLoginButton.getRequestCode(); ... } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RC_GP_SIGN_IN) { ... } else if (requestCode == RC_FB_SIGN_IN) { Log.i(TAG, "Doing my facebook usual things"); mFacebookCallbackManager.onActivityResult(requestCode, resultCode, data); } } 

    Aggiungendo alla risposta di Apetroaei Andrei, ci sono altre opzioni disponibili nella class CallbackManagerImpl di Facebook SDK:

     public enum RequestCodeOffset { Login(0), Share(1), Message(2), Like(3), GameRequest(4), AppGroupCreate(5), AppGroupJoin(6), AppInvite(7), ; 

    Questi possono essere raggiunti con il foll. codice:

     if (requestCode == CallbackManagerImpl.RequestCodeOffset.Share.toRequestCode()) { callbackManager.onActivityResult(requestCode, resultCode, data); } 

    nei lates sdk, (4.4.1), è ansible impostare manualmente il codice di richiesta modificando due file nella libreria di facebook: 1) LoginClient.java

      public static int getLoginRequestCode() { //return CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode(); return [your request code here]; } 

    2) LoginManager.java

      public void registerCallback( ... ((CallbackManagerImpl) callbackManager).registerCallback([your request code here], new CallbackManagerImpl.Callback() { @Override ... } ); } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.