我在使用 com.google.android.gms.auth.api.signin.GoogleSignIn 在 Google Pixel 设备上使用 Google 登录时遇到问题。我可以在其他 Android 设备上登录,但是当我尝试在 Google Pixel 设备上登录时,登录意图返回 12501 状态代码,就好像用户取消了登录过程一样。
我只进入谷歌帐户列表,而不是权限屏幕。
我已经在开发者控制台中设置了凭据。它们已经适用于其他设备。
我用于登录的 java 代码如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
...
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(new Scope(GOOGLE_CALENDAR_SCOPE))
.requestServerAuthCode(GOOGLE_CONSOLE_CLIENT_ID, true)
.requestEmail()
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
}
...
public void loadGoogleCalendar() {
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
if(account != null) {
Toast.makeText(this, "already signed in", Toast.LENGTH_SHORT);
loadCalendarsForAccount(account);
} else {
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, GOOGLE_SIGNIN_REQUEST);
}
}
我曾尝试使用各种设备登录,但该错误似乎只出现在 Google Pixel 上。
-------------------------------------------------------------------------
| Device | Google Play | Android | Result |
| | Services Version | Version | |
-------------------------------------------------------------------------
| Huawei PRA-LX1 | 15.0.90 | 8.0.0 API26 | OK |
-------------------------------------------------------------------------
| Samsung SM-G950F | 14.8.49 | 8.0.0 API26 | OK |
-------------------------------------------------------------------------
| Sony F5321 | 15.0.90 | 7.0 API24 | OK |
-------------------------------------------------------------------------
| Google Pixel | 15.0.90 | 8.1.0 API27 | 12501 |
| | | | SIGN_IN_CANCELLED |
-------------------------------------------------------------------------
| ONEPLUS A600 | 15.0.90 | 9 API28 | OK |
-------------------------------------------------------------------------
我能做些什么来解决这个错误?