1

我想使用Facebook登录按钮,但unflexalately它自动登录,我想让它自动登出和用户按它然后登录过程开始,我知道它会自动登录,因为我我在我的android facebook应用程序中登录。android facebook登录按钮自动登录

码/ H3>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <com.facebook.widget.LoginButton 
     android:id="@+id/authButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="30dp" 
     /> 

</LinearLayout> 

回答

0
In onCreate method. 


     Session activeSession = Session.getActiveSession(); 
     if (activeSession == null || activeSession.getState().isClosed()) { 
      activeSession = new Session.Builder(context).setApplicationId(context.getString(R.string.app_id)).build(); 
      activieSession = Session.setActiveSession(activeSession); 
     } 
     Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS); 

     LoginButton login = (LoginButton)findViewById(R.id.login); 
     login.setReadPermissions(Arrays.asList("user_groups", "user_photos")); 


@Override 
public void onResume() { 
    super.onResume(); 
    // For scenarios where the main activity is launched and user 
    // session is not null, the session state change notification 
    // may not be triggered. Trigger it if it's open/closed. 
    Session session = Session.getActiveSession(); 
    if (session != null && (session.isOpened() || session.isClosed())) { 
     onSessionStateChange(session, session.getState(), null); 
    } 
    uiHelper.onResume(); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    uiHelper.onActivityResult(requestCode, resultCode, data); 
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 
} 
2

其实,如果我理解正确的问题,你想要什么MuhammadAamirALi贴相反。什么应该是这样的:在OnCreate方法

Session activeSession = Session.getActiveSession(); 
    //Checks for an open session 
    if (!(activeSession == null || activeSession.getState().isClosed())) { 
     //if found one, kill it. 
     activeSession.closeAndClearTokenInformation(); 
    } 
    LoginButton authButton = (LoginButton) layout.findViewById(R.id.authButton); 
    authButton.setReadPermissions(Arrays.asList("basic_info", "email")); 

如果有人的实现同样的更好的办法知道,我很想知道(因为我面对这个问题马上)。就像,如何防止Facebook在创建按钮时检查打开的会话。

+0

这仍然是最好的方式或是新发现的东西? – Lion789