Как пропустить вход в систему, если вы уже вошли - войдите с помощью Google - android - PullRequest
0 голосов
/ 06 марта 2020

Я хочу пропустить действие входа в систему, если я уже вошел в систему. Основная идея заключается в том, что при первом открытии приложения я должен видеть действие входа в систему, поскольку я не вошел в систему, но если я вхожу и после закрытия приложения, когда я снова открываю приложение, я хочу увидеть меню, а не журнал действий.

Я пытался смотреть в Интернете, но я не очень хорошо понимаю. Я новичок в android, поэтому я стараюсь понять как можно больше. Ниже я дам свой код. Кстати, это не работает, и я не понимаю, что я делаю неправильно. Заранее спасибо.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    signInButton = findViewById(R.id.sign_in_button);

    name =findViewById(R.id.name);

    mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);

    auth = FirebaseAuth.getInstance();

    gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();

    if(mGoogleSignInClient == null ){
        mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

        signInButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                switch (v.getId()) {
                    case R.id.sign_in_button:
                        signIn();
                        break;
                }
            }
        });
    }else{
        Intent intent = new Intent(MainActivity.this,Menu.class);
        startActivity(intent);
    }


    fetchLocation();
    statusCheck();

}

1 Ответ

1 голос
/ 07 марта 2020

Используя это, каждый раз, когда вы открываете свое приложение

GoogleSignInAccount account = new GoogleSignIn.getLastSignedInAccount(activity);

Вы можете получить сеанс последнего входа в систему, если он не нулевой, т.е.

if(account!=null && !account.isExpired())
   String email =account.email.toString();

Я перевел его с Kotlin, могут быть небольшие изменения для объявления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...