我正在使用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回答这个问题。