Android Facebook LoginButton не обновляет состояние входа в систему, если я вхожу из веб-формы

У меня есть приложение, которое позволяет пользователям размещать сообщения на Facebook. На экране параметров у меня есть LoginButton, который я могу использовать для входа в систему, и он запомнит состояние. Когда я войду в систему, она изменится на «Выход». Если я попытаюсь поделиться чем-то, не входя в систему (используя кнопку на экране параметров), появится веб-форма Facebook, и я войду в нее. Проблема в том, что кнопка LoginButton на экране параметров не обновляет свое состояние, чтобы сказать «Выход».

Спасибо.


person BVintila    schedule 21.10.2015    source источник


Ответы (1)


В вашем «экране параметров» вы должны проверить, есть ли какие-либо AccessToken уже подобные этому

if (AccessToken.getCurrentAccessToken() != null &&
            com.facebook.Profile.getCurrentProfile() != null) {
        imgFacebook.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LoginManager.getInstance().logOut();
                imgFacebook.setVisibility(View.GONE);
                imgFacebookDeactive.setVisibility(View.VISIBLE);
                Toast.makeText(getApplicationContext(), "Facebook has Logout successfulley!",
                        Toast.LENGTH_SHORT).show();
            }
        });


    } else {
        imgFacebook.setVisibility(View.GONE);
        imgFacebookDeactive.setVisibility(View.VISIBLE);
        imgFacebookDeactive.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplication(), "Facebook already Logout", Toast.LENGTH_SHORT).show();
            }
        });
    }

Затем я проверяю свой CurrentAccessToken и CurrentProfile, если он не равен нулю, это означает, что учетная запись была зарегистрирована. Я вызываю LoginManager.getInstance().logOut(); для выхода из facebook.

person TranHieu    schedule 22.10.2015
comment
AccessToken.getCurrentAccessToken() имеет значение null на экране параметров. Я проверил это. Тем не менее, если я попытаюсь поделиться снова, он не попросит меня войти в систему. - person BVintila; 22.10.2015