我正在通过Udacity课程将Google登录整合到Android应用中。我们尝试通过onConnected()中的.getCurrentOerson()获取当前用户的详细信息,但不推荐使用.getCurrentOerson()。
public class SignInAct extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
GoogleApiClient mGoogleApiClient;
Button signIn,signOut,revoke;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.signinlay);
mGoogleApiClient = buildApiClient();
}
GoogleApiClient buildApiClient(){
return new GoogleApiClient.Builder(this).
addConnectionCallbacks(this).
addOnConnectionFailedListener(this).
addApi(Plus.API, Plus.PlusOptions.builder().build()).
addScope(new Scope(Scopes.PROFILE)).build();
}
@Override
public void onConnected(Bundle bundle) {
signIn.setEnabled(false);
signOut.setEnabled(true);
revoke.setEnabled(true);
Person currentUser = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
}}
现在获取displayName的方法是什么? 感谢。
答案 0 :(得分:2)
public abstract Person getCurrentPerson (GoogleApiClient googleApiClient)
documentation:
不推荐使用此方法。
如果您仅使用People Api登录并获取身份,请改用GoogleSignInApi。
From the GoogleSignInResult
documentation:
public GoogleSignInAccount getSignInAccount()
如果登录成功完成,则返回反映用户登录信息的
GoogleSignInAccount
;失败时为null。
From the GoogleSignInAccount
documentation:
public String getDisplayName()
如果您从新的GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)}或配置了requestProfile()构建配置,则返回已登录用户的显示名称;否则为null。即使配置,也不保证所有用户都能出现。