Я пишу приложение, которое требует входа в facebook. Я могу войти в систему, когда он сначала откроет приложение. Однако я не могу получить сеанс после перезапуска приложения. Мой код Логин следующий:Android Facebook SDK Запомнить сеанс
private static Session openActiveSession(Activity activity, boolean allowLoginUI, StatusCallback callback, List<String> permissions) {
OpenRequest openRequest = new 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;
}
И я использую isLoggedIn
метод, когда приложение открыто для того, чтобы понять, если пользователь вошел в систему или нет.
public static boolean isLoggedIn() {
Session session = Session.getActiveSession();
if (session != null && session.isOpened()) {
return true;
} else {
return false;
}
}
Но когда приложение закрыто и вновь, этот метод никогда не возвращает true
.
Как вернуть старый сеанс назад без, показывая всплывающее окно, чтобы получать информацию об учетной записи пользователя facebook, если он входил в систему в прошлом.
Вы закрываете сессию в любом месте? –
Нет, я не. если вы вошли в систему перед закрытием приложения, следующий вызов метода openActiveSession открывает предыдущий сеанс без отображения диалогового окна входа в систему. Однако, если вы не вошли в систему, откроется диалоговое окно входа в систему. Должен быть способ, которым я могу знать, был ли пользователь включен в предыдущее приложение открытым, без отображения диалогового окна входа в систему. – sedran
Вы можете вызвать Session.openActiveSessionFromCache, он будет открывать активный сеанс с помощью кеш-ключа доступа, если он может, или вернуть null, если он не может. –