使用com.google.android.gms.auth.api.signin.GoogleSignIn使Google登录在Google Pixel设备上运行时出现问题。我可以登录其他Android设备,但是当我尝试登录Google Pixel设备时,登录意图将返回12501状态代码,就像用户已取消登录过程一样。
我只会进入Google帐户列表,而没有进入权限屏幕。
我已经在开发人员控制台中设置了凭据。他们已经可以在其他设备上使用了。
我用于登录的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 |
-------------------------------------------------------------------------
如何解决此错误?