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帳戶信息(如果他/她過去已登錄)。
你是否在任何地方關閉會議? –
不,我不是。如果您在關閉應用程序之前已經登錄,則下一次openActiveSession方法調用將打開前一個會話而不顯示登錄對話框。但是,如果您未登錄,則會打開一個登錄對話框。必須有一種方法,我可以知道用戶是否在以前的應用程序中打開登錄,而不顯示登錄對話框。 – sedran
您可以調用Session.openActiveSessionFromCache,如果可以的話,它將使用緩存的訪問令牌打開活動會話,如果不可以,則返回null。 –