使用 Play 服务 8.4,方法 getCurrentPerson已弃用,我使用 PeopleApi 获取用户的名字、姓氏和性别。
谁能告诉我如何使用其他方法获取已登录用户的信息?
最佳答案
更新:检查伊莎贝拉的回答。此答案使用已弃用的内容。
我自己找到了解决方案,所以如果有人遇到同样的问题,我会把它贴在这里。
虽然我一直在寻找使用 GoogleSignInApi 获取用户信息的解决方案,但找不到,我认为我们需要使用 Plus Api 来获取性别等信息。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
}
}
处理登录结果
private void handleSignInResult(GoogleSignInResult result)
{
Log.d(TAG, "handleSignInResult:" + result.isSuccess());
if (result.isSuccess())
{
GoogleSignInAccount acct = result.getSignInAccount();
Toast.makeText(getApplicationContext(),""+acct.getDisplayName(),Toast.LENGTH_LONG).show();
Plus.PeopleApi.load(mGoogleApiClient, acct.getId()).setResultCallback(new ResultCallback<People.LoadPeopleResult>() {
@Override
public void onResult(@NonNull People.LoadPeopleResult loadPeopleResult) {
Person person = loadPeopleResult.getPersonBuffer().get(0);
Log.d(TAG,"Person loaded");
Log.d(TAG,"GivenName "+person.getName().getGivenName());
Log.d(TAG,"FamilyName "+person.getName().getFamilyName());
Log.d(TAG,("DisplayName "+person.getDisplayName()));
Log.d(TAG,"Gender "+person.getGender());
Log.d(TAG,"Url "+person.getUrl());
Log.d(TAG,"CurrentLocation "+person.getCurrentLocation());
Log.d(TAG,"AboutMe "+person.getAboutMe());
Log.d(TAG,"Birthday "+person.getBirthday());
Log.d(TAG,"Image "+person.getImage());
}
});
//mStatusTextView.setText(getString(R.string.signed_in_fmt, acct.getDisplayName()));
//updateUI(true);
} else {
//updateUI(false);
}
}
关于android - Plus.PeopleApi.getCurrentPerson 在 Play 服务 8.4 中已弃用。如何使用 GoogleSignInApi 获取用户的名字、姓氏和性别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34412157/