У меня есть приложение для Android, которое использует sdk для входа в систему. Для этого я использую виджет LoginButton. Процесс регистрации работает очень хорошо, но у меня возникла небольшая проблема: когда я закрываю приложение или переустанавливаю его, он автоматически регистрируется в Facebook (текст на кнопке переключается на «Выход»). Я не хочу иметь такое поведение: мне нужно, чтобы пользователь нажимал кнопку для входа в систему при каждом запуске приложения. Я проверил в Интернете, и кажется, что эта функция называется «единый вход», но я не уверен в этом. Я нашел несколько способов сделать это, но никто из них не работает. Я использовал Facebook SDK 4. Это часть кода, который создает экземпляр Activity.Отключить автоматический вход в систему с помощью Facebook loginbutton
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
this.setContentView(R.layout.login_layout);
getSupportActionBar().hide();
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).build();
mGoogleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this, this).addApi(Auth.GOOGLE_SIGN_IN_API, gso).build();
/*accessTokenTracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken newAccessToken) {
updateWithToken(newAccessToken);
}
};*/
LoginManager.getInstance().logInWithReadPermissions(LogInActivity.this, Arrays.asList("public_profile", "user_birthday", "email"));
LoginManager.getInstance().setLoginBehavior(LoginBehavior.SUPPRESS_SSO);
fb_login = ((LoginButton) findViewById(R.id.fb_login));
fb_login.setLoginBehavior(LoginBehavior.SUPPRESS_SSO);
fb_login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.i("Facebook connect", "Connection success");
}
@Override
public void onCancel() {
Log.i("Facebook", "Super c'et cancel");
((TextView) findViewById(R.id.account)).setText("Annulé");
}
@Override
public void onError(FacebookException error) {
Log.i("Facebook", "Super y a une erreur");
((TextView) findViewById(R.id.account)).setText("Erreur");
}
});
Есть ли у кого-нибудь идеи, как отключить автоматическое соединение?
Что вы пробовали? вы пробовали вызывать Logout() в диспетчере входа? или, может быть, вызывать это и видеть, помогает ли он ['AccessToken.setCurrentAccessToken (null);'] (https://github.com/facebook/facebook-android-sdk/blob/001984c85bbb5ccb7a3df4e33fe3090d22a8ac88/samples/SwitchUserSample/src/com/example /switchuser/SettingsFragment.java) – ifaour