这似乎是一个基本功能,但遵循登录教程 https://developers.google.com/identity/sign-in/android/sign-in,仅当我选择设备上已注册的帐户时,它才有效。
选择后'使用另一个帐户'并完成一些步骤来验证它会丢失回调结果,(onActivityResult
is 没有被调用).
I use GoogleSignInOptions
:没有发生异常,我无法添加任何侦听器来检测异常。
然而,GoogleApiClient
工作正常,但有一些已弃用的方法,因此我决定切换到GoogleSignInOptions
以避免弃用问题。
初始化:
googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
googleSignInClient = GoogleSignIn.getClient(this, googleSignInOptions);
当点击时:
signInButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
signIn();
}
});
private void signIn() {
googleSignInClient.signOut();
Intent signInIntent = googleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, 123);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 123 && data != null) {
handleSignInResult(data);
}
}
private void handleSignInResult(Intent data) {
Task<GoogleSignInAccount> signInTask = GoogleSignIn.getSignedInAccountFromIntent(data);
try {
GoogleSignInAccount googleSignInAccount = signInTask.getResult(ApiException.class);
if (googleSignInAccount != null) {
updateUI(googleSignInAccount);
}
} catch (ApiException e) {
e.printStackTrace();
}
}
有人可以帮忙吗?
更新:此错误现已在 Oauth2 库中修复
所以我也遇到了同样的问题。我发现这是一个开放问题 https://github.com/googlesamples/google-services/issues/358三月份的报告回来了。所以这可能不是您的代码的问题。
我发现了另一个有关的 stackoverflow 问题Oauth2 和 googleAuthUtil 之间的区别 https://stackoverflow.com/questions/22142641/access-to-google-api-googleaccountcredential-usingoauth2-vs-googleauthutil-get,使用提到的其他库,我发现这个错误不存在。
我把这个包导入到我的gradle中
implementation('com.google.api-client:google-api-client-android:1.23.0') {
exclude group: 'org.apache.httpcomponents'
}
并进行身份验证GoogleAccountCredential
object.
GoogleAccountCredential credential = new GoogleAccountCredential(context, scope);
startActivityForResult(credential.newChooseAccountIntent(), resultCode);
你需要GET_ACCOUNTS
对此方法的许可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)