Android facebook sdk no llama a la devolución de llamada después de iniciar sesión

Ayuda,

Estoy tratando de hacer una clase que maneja el inicio de sesión de facebook en mi aplicación. Mi problema es que no funciona en toda la actividad. En esa actividad no llama a la devolución de llamada. Después de que el inicio de sesión y autorizar la vista web de la aplicación se descarte, la llamada de retorno no se dispara. El último estado que se imprimió en Logcat es APERTURA

Aquí está mi código:

public void doLogin() { if ((Session.getActiveSession() == null || !Session.getActiveSession().isOpened())) { List<String> permissions = new ArrayList<String>(); permissions.add("email"); // start Facebook Login openActiveSession(activity, true, new Session.StatusCallback() { // callback when session changes state @Override public void call(Session session, SessionState state, Exception exception) { Log.d("Sessionstate", state.toString()); if (session.isOpened()) { // make request to the /me API Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser user, Response response) { if (prgCheckFB.isShowing()) prgCheckFB.dismiss(); if (user != null) { Log.e("facebookid", id); doSomething(user); } } }); } }, permissions); } } private static Session openActiveSession(Activity activity, boolean allowLoginUI, Session.StatusCallback callback, List<String> permissions) { Session.OpenRequest openRequest = new Session.OpenRequest(activity) .setPermissions(permissions).setCallback(callback); Session session = new Session.Builder(activity).build(); if (SessionState.CREATED_TOKEN_LOADED.equals(session.getState()) || allowLoginUI) { Session.setActiveSession(session); session.openForRead(openRequest); return session; } return null; } 

DoSomething es una función que guardará los datos de usuario en una preferencia compartida.

¿Hay algo mal? La función funciona en alguna actividad pero no TODAS las actividades.

Gracias

2 Solutions collect form web for “Android facebook sdk no llama a la devolución de llamada después de iniciar sesión”

Tal vez te olvides de manejar los resultados después de iniciar sesión …

Compruebe el método override onActivityResult ..

Porque maneja los resultados de nuevo a MainActivity,

Tal vez esto puede ayudar a su problema ..

 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); } 

Actualización 1

Para un uso más nuevo del SDK:

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

Tener el atributo android:noHistory="true" establecido para su actividad de devolución de llamada en el archivo AndroidManifest.xml también resultará con los métodos de devolución de llamada no disparando.

  • Facebook Android SDK 3.0 siempre devuelve ABRIR al iniciar sesión
  • Cómo obtener el ID de usuario de FB mediante el botón de inicio de sesión de Facebook en la aplicación de Android
  • Inicie sesión una vez y omita la configuración de inicio de sesión cada vez que se inicia la aplicación después del primer inicio de sesión
  • Cómo obtener APP_ID para Facebook?
  • Cómo obtener la foto del perfil de Facebook en Facebook SDK Android
  • Android Facebook Comparte no mostrar descripción en facebook
  • Android - Métodos en DialogListener adjunto a Facebook.authorize () no se recibe
  • Cómo utilizar Facebook SDK con android.app.Fragment
  • Session.StatusCallback no se puede resolver con un tipo - Facebook API
  • ¿Qué tan seguro acceder a mi aplicación de Android con facebook-id?
  • Android Studio Gradle error "Múltiples archivos dex definir ..."
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.