2013-07-16 1 views
1

Я пишу приложение, которое требует входа в 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, если он входил в систему в прошлом.

+0

Вы закрываете сессию в любом месте? –

+0

Нет, я не. если вы вошли в систему перед закрытием приложения, следующий вызов метода openActiveSession открывает предыдущий сеанс без отображения диалогового окна входа в систему. Однако, если вы не вошли в систему, откроется диалоговое окно входа в систему. Должен быть способ, которым я могу знать, был ли пользователь включен в предыдущее приложение открытым, без отображения диалогового окна входа в систему. – sedran

+0

Вы можете вызвать Session.openActiveSessionFromCache, он будет открывать активный сеанс с помощью кеш-ключа доступа, если он может, или вернуть null, если он не может. –

ответ

4

Вы можете вызвать Session.openActiveSessionFromCache, который будет открывать активный сеанс, только если есть кеш-ключ доступа или иначе возвращает null.

 Смежные вопросы

  • Нет связанных вопросов^_^