Android Facebook SDK-重新启动后如何保持登录状态
我使用的是facebok SDK和引导接收器,当引导序列完成时会触发:Android Facebook SDK-重新启动后如何保持登录状态,android,facebook,login,Android,Facebook,Login,我使用的是facebok SDK和引导接收器,当引导序列完成时会触发: public class BootReceiver extends BroadcastReceiver { 我假定用户在以下情况下登录: public boolean isLoggedIn() { return AccessToken.getCurrentAccessToken() != null; } 但是,这始终返回为false 如何恢复用户的会话并在重新启动后让他们登录?这需要在引导接收器内完成,以检查用户
public class BootReceiver extends BroadcastReceiver {
我假定用户在以下情况下登录:
public boolean isLoggedIn() {
return AccessToken.getCurrentAccessToken() != null;
}
但是,这始终返回为false
如何恢复用户的会话并在重新启动后让他们登录?这需要在引导接收器内完成,以检查用户以前是否登录,并提供对以下内容的访问:
Profile.getCurrentProfile()
在broadcastReceiver内部执行登录之前,您可以尝试注销。这将确保用户已登录
LoginManager loginManager = LoginManager.getInstance();
loginManager.logOut();
loginManager.logInWithReadPermissions(...);
loginManager.registerCallback(...);
我知道了
如果我设置一个异步调用来刷新访问令牌,然后检查用户是否已登录,那么它似乎可以工作:
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
AccessToken.refreshCurrentAccessTokenAsync(new AccessToken.AccessTokenRefreshCallback() {
@Override
public void OnTokenRefreshed(AccessToken accessToken) {
System.out.println("Refresh succeed");
AccessToken.setCurrentAccessToken(accessToken);
if (isLoggedIn()) {
System.out.println("User is logged in");
doCoolStuffHere();
} else {
System.out.println("User is not logged in");
}
}
@Override
public void OnTokenRefreshFailed(FacebookException exception) {
System.out.println("Refresh failed");
}
});
}
}
logInWithReadPermissions需要活动或片段?是的,您是对的,此方法需要片段或活动