El título lo dice todo. Estoy usando un botón personalizado para obtener la información de Facebook del usuario (con el propósito de "registrarse"). Sin embargo, no quiero que la aplicación recuerde al último usuario registrado, ni al que está conectado actualmente en persona a través de la aplicación nativa de Facebook. Quiero que la actividad de inicio de sesión de Facebook aparezca cada vez. Es por eso que quiero cerrar la sesión de los usuarios anteriores mediante programación.
¿Cómo puedo hacer eso? Así es como hago el inicio de sesión:
private void signInWithFacebook() {
SessionTracker sessionTracker = new SessionTracker(getBaseContext(), new StatusCallback()
{
@Override
public void call(Session session, SessionState state, Exception exception) {
}
}, null, false);
String applicationId = Utility.getMetadataApplicationId(getBaseContext());
mCurrentSession = sessionTracker.getSession();
if (mCurrentSession == null || mCurrentSession.getState().isClosed()) {
sessionTracker.setSession(null);
Session session = new Session.Builder(getBaseContext()).setApplicationId(applicationId).build();
Session.setActiveSession(session);
mCurrentSession = session;
}
if (!mCurrentSession.isOpened()) {
Session.OpenRequest openRequest = null;
openRequest = new Session.OpenRequest(RegisterActivity.this);
if (openRequest != null) {
openRequest.setPermissions(null);
openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
mCurrentSession.openForRead(openRequest);
}
}else {
Request.executeMeRequestAsync(mCurrentSession, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
fillProfileWithFacebook( user );
}
});
}
}
Idealmente, haría una llamada al comienzo de este método para cerrar la sesión de cualquier usuario anterior.