您好,我找到了最新 google plus 登录使用的方法以下方法:-
GoogleApiClient mGoogleApiClient;
private void latestGooglePlus() {
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestProfile().requestEmail().requestScopes(Plus.SCOPE_PLUS_LOGIN, Plus.SCOPE_PLUS_PROFILE, new Scope("https://www.googleapis.com/auth/plus.profile.emails.read"))
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.addApi(Plus.API)
.build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, YOURREQUESTCODE);
}
在活动结果上使用以下代码:-
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.e("Activity Res", "" + requestCode);
if (requestCode == YOURREQUESTCODE) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
GoogleSignInAccount acct = result.getSignInAccount();
acct.getPhotoUrl();
acct.getId();
Log.e(TAG, acct.getDisplayName());
Log.e(TAG, acct.getEmail());
Plus.PeopleApi.load(mGoogleApiClient, "signed_in_user_account_id").setResultCallback(new ResultCallback<People.LoadPeopleResult>() {
@Override
public void onResult(@NonNull People.LoadPeopleResult loadPeopleResult) {
PersonBuffer personBuffer = loadPeopleResult.getPersonBuffer();
if (personBuffer != null && personBuffer.getCount() > 0) {
Person currentUser = personBuffer.get(0);
personBuffer.release();
Person.Cover cover = currentUser.getCover();
if (cover != null) {
Person.Cover.CoverPhoto coverPhoto = cover.getCoverPhoto();
if (coverPhoto != null) {
String userCoverPhotoUrl = coverPhoto.getUrl();
Log.i("Main TAG", "Cover photo Url :" + userCoverPhotoUrl);
}
} else {
Log.i("TAG NO COVER", "Person has no cover");
}
}
});
}
}
}
最后你的 onclick 将是:-
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.txtGooglePlus:
latestGooglePlus();
break;
default:
break;
}
}