在谷歌的onConnected回调后获取用户电子邮件信息

时间:2017-05-17 08:21:00

标签: android google-signin google-api-client android-googleapiclient

我正在使用GoogleApiClient在我的应用中授权用户。

使用以下方式构建google api客户端

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

// Build a GoogleApiClient with access to the Google Sign-In API and the
// options specified by gso.
mGoogleApiClient = new GoogleApiClient.Builder(context)
        .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
        .enableAutoManage(this, this)
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .build();

我的活动定义:

public class UserLoginActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener 

由于使用了enableAutoManage,app会自动登录并回复onConnected方法。

@Override
public void onConnected(@Nullable Bundle bundle) {
    // todo - how to get emailid here of already authorised user?
    verifyUserAndLaunchNextActivity();
}

在此onConnected回调中,bundle具有null值。现在,我如何获得已授权用户的emailId? 我有机会从mGoogleApiClient获得它吗?

P.S SO中的其他线程基于不推荐使用的GooglePlus API。请根据新的GoogleApiClient回答这个问题。

0 个答案:

没有答案