Cómo evitar mostrar el diálogo ya autorizado en la aplicación en Android Facebook SDK

Introduzca aquí la descripción de la imagen

Estoy recibiendo una página completamente inútil cuando utilizo el inicio de sesión único para el SDK de Android de Facebook.

"You have already authorized app. Press "Okay" to continue. 

Esta página destruiría la experiencia del usuario. ¿Cómo puedo eliminar esta pantalla?

Gracias por adelantado.

Nota: no veremos este problema si la aplicación FB está instalada en el dispositivo. Sólo se publicará si la aplicación FB no está disponible en el dispositivo.

Estoy usando el último Facebook SDK 3.6 Creo y he probado hasta ahora en HTC One y Galaxy s3 mini . Esta página no se muestra para mí en ningún momento. He seguido la guía de API aquí …

https://developers.facebook.com/docs/facebook-login

Aquí está el código aswell … quizás esto puede ayudar.

 public class LoginHandlerFrag extends Fragment { private UiLifecycleHelper uiHelper; private static final String TAG = "HomeFragment"; // private ProfilePictureView profilePictureView; private Session.StatusCallback callback = new Session.StatusCallback() { @Override public void call(Session session, SessionState state, Exception exception) { onSessionStateChange(session, state, exception); } }; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_login, container, false); LoginButton authButton = (LoginButton) view .findViewById(R.id.authButton); authButton.setReadPermissions(Arrays.asList("email", "user_location", "user_birthday", "user_likes", "user_photos")); authButton.setFragment(this); Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS); return view; } private void makeMeRequest(final Session session) { // Make an API call to get user data and define a // new callback to handle the response. Request request = Request.newMeRequest(session, new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser user, Response response) { // If the response is successful if (session == Session.getActiveSession()) { if (user != null) { // profilePictureView.setProfileId(user.getId()); } } if (response.getError() != null) { // Handle errors, will do so later. } } }); request.executeAsync(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); uiHelper = new UiLifecycleHelper(getActivity(), callback); uiHelper.onCreate(savedInstanceState); } private void onSessionStateChange(Session session, SessionState state, Exception exception) { session = Session.getActiveSession(); SharedPreferences storedPrefs = PreferenceManager .getDefaultSharedPreferences(getActivity().getApplicationContext()); SharedPreferences.Editor editor = storedPrefs.edit(); editor.putBoolean("userLoggedTracker", true); editor.commit(); if (state.isOpened()) { Log.i(TAG, "Logged in..."); makeMeRequest(session); editor.putBoolean("userLoggedTracker", false); editor.commit(); getView().setVisibility(View.GONE); } else if (state.isClosed()) { Log.i(TAG, "Logged out..."); editor.putBoolean("userLoggedTracker", true); editor.commit(); getView().setVisibility(View.VISIBLE); } } @Override public void onResume() { super.onResume(); Session session = Session.getActiveSession(); if (session != null && (session.isOpened() || session.isClosed())) { onSessionStateChange(session, session.getState(), null); } uiHelper.onResume(); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); uiHelper.onActivityResult(requestCode, resultCode, data); } @Override public void onPause() { super.onPause(); uiHelper.onPause(); } @Override public void onDestroy() { super.onDestroy(); uiHelper.onDestroy(); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); uiHelper.onSaveInstanceState(outState); } } 

Antes de usar este código para salir de Facebook:

 if (AccessToken.getCurrentAccessToken() == null) { return; // already logged out } new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest .Callback() { @Override public void onCompleted(GraphResponse graphResponse) { LoginManager.getInstance().logOut(); } }).executeAsync(); 

Después de haber sido cambiado a este código LoginManager.getInstance().logOut(); Resolvió el problema.

  • Aplicación para Android de Facebook: expiración de token de acceso (expires_in) siempre es 0
  • Android: el inicio de sesión de Facebook provoca error de onResume sólo por primera vez
  • Android - Métodos en DialogListener adjunto a Facebook.authorize () no se recibe
  • Session.openActiveSession sólo llama OPENING en Facebook SDK de Android
  • Visión general de plataformas de terceros o bibliotecas para Android
  • Android Facebook SDK Compartir diálogo: nunca volver Completion Gesture
  • Obtener el permiso de publish_action después de obtener permisos de lectura de Facebook
  • No se puede reloginar con las credenciales de Facebook después de cerrar la sesión
  • No puede iniciar sesión con la nueva versión 3.0 de facebook sdk para android
  • Buscando ejemplos de SDK en Android de Facebook
  • Cómo manejar facebook como con confirmar en android webview
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.