Session.getActiveSession() returns null when starting the app, although I'm connected
android, facebook-android-sdk
Solution
Ok, I've just read about `openActiveSessionFromCache` (not from Facebook doc though):
Session session = Session.getActiveSession();
if(session==null){
// try to restore from cache
session = Session.openActiveSessionFromCache(getActivity());
}
if(session!=null && session.isOpened()){
publishOnFacebook(intent.getExtras());
}
else{
login();
}
Problem
I use com.facebook.widget.UserSettingsFragment to manage login/logout to Facebook in my app: ``` UserSettingsFragment userSettingsFragment = new UserSettingsFragment(); Session session = Session.getActiveSession(); if(session==null || session.isClosed()){ userSettingsFragment.setPublishPermissions(Arrays.asList("publish_actions")); } fragmentTransaction.replace(R.id.content_container, userSettingsFragment, "userSettingsFragment"); ``` In another `Fragment` (but same `Activity`), Before publishing on Facebook I'm checking whether I'm logged using ``` Session session = Session.getActiveSession(); if (session != null && session.isOpened()){ publishOnFacebook(intent.getExtras()); } ``` When I start my app and try to publish, I always get a `null` `Session` although I logged in before. And when I start `UserSettingsFragment`, it shows me that I'm connected. How can `Session.getActiveSession();` be `null` if I'm actually connected? Moreover, if I I start the `Fragment` where I do the publishing straight after `UserSettingsFragment`, I get the correct `Session`, i.e.: ``` 1 start the app 2 call `Session.getActiveSession()` in another `Fragment` returns `null` 3 start `UserSettingsFragment` shows that I'm log ``` but ``` 1 start the app 2 start `UserSettingsFragment` shows that I'm log 3 call `Session.getActiveSession()` in another `Fragment` returns a session ``` Anybody can help?