我使用GoogleSignIn访问Google Photos API和管理OAuth。
使用startActivityForResult获取有效的帐户, 当我致电GoogleSignIn.requestPermissions时, 然后,先前的有效帐户将变为无效(account.object不再包含电子邮件)。返回的帐户具有允许的权限。
我使用GoogleSignIn.getLastSignedInAccount检索授予的帐户。
GoogleSignIn.requestPermissions(
MainActivity.this,
RC_AUTHORIZE_PHOTOS,
GoogleSignIn.getLastSignedInAccount(MainActivity.this),
new Scope("https://www.googleapis.com/auth/photoslibrary.readonly"));
然后
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(getApplicationContext());
使用account.getAccount == null返回一个帐户
答案 0 :(得分:0)
作为一种解决方法,我在调用signIn时调用requestPermissions。结果,getLastSignedInAccount总是正确的。
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(new Scope(Scopes.EMAIL), SCOPE_PHOTOS_READ)
.build();
GoogleSignInClient mGoogleSignInClient = GoogleSignIn.getClient(activity, gso);
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
activity.startActivityForResult(signInIntent, MainActivity.RC_SIGN_IN);