首页 > 解决方案 > 如何登录 Google 帐户 - api 28

问题描述

我正在尝试将登录/注册设置为谷歌帐户。我编写了代码,它应该可以工作,但它没有(它总是以我制作的失败吐司告终)。

我看了一堆视频并查看了谷歌文档,我的代码几乎相同。

protected void onStart() {
    if( getIntent().getBooleanExtra(ThirdActivity.extraLoggedIn, false) == false ) {
        GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
        if (account != null) {
            getDataFromFirebase(account);
            //playerNameText.setText("Player Name: " + accountName);
        } else {
            startActivityForResult(mGoogleSignInClient.getSignInIntent(), 0);
            //account = GoogleSignIn.getLastSignedInAccount(this);
            //signUp(account);
        }
        loggedIn = true;
    }
    super.onStart();
    changeLanguage(SingletonDemiClass.getInstance().getLanguage());
    playerNameText.setText("Player Name: " + accountName);
}

@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == 0){
        Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
        //Toast.makeText(SecondActivity.this, task.getResult().getId(), Toast.LENGTH_LONG).show();
        signUp(task);
    }
}

//private void signUp(GoogleSignInAccount account) {
private void signUp(Task<GoogleSignInAccount> completedTask) {

    try {
        GoogleSignInAccount account = completedTask.getResult(ApiException.class);
        accountID = account.getId();
        accountName = account.getDisplayName();

    }
    catch (ApiException ex) {


        Log.w("Google Sign-In Error", "signInResult:failed code=" + ex.getStatusCode());
        Toast.makeText(SecondActivity.this, "Failed", Toast.LENGTH_LONG).show();
        //}
    }
}

日志猫

标签: javaandroidandroid-studiogoogle-play-services

解决方案


推荐阅读