我几天都面临一个问题,我没有更多的想法。我有一个带有 Google 登录功能的 android 应用程序,效果很好。它针对 API 30 (Android 11)。我最近将目标 SDK 升级到 31(Android 12)。
- 当我使用“Google Play Intel x86 Atom 系统映像(API 30)”模拟器运行我的应用程序时,一切正常(1 小时后令牌刷新良好)。
- 当我使用“Google Play Intel x86 Atom_64 System Image (API 31)”模拟器运行相同的应用程序时,第一次登录有效(它会创建一个有效的令牌),但在 1 小时的生命周期之后,静默登录不会刷新令牌,所以它已过期。
它是相同的源代码。唯一的区别是模拟器 Play SDK(30 对 31)。我没有真正的 Android 12 设备来测试。我希望这是一个模拟器 SDK 错误,但不确定,因为我什么都没发现。任何想法?
@Override
protected void onStart() {
super.onStart();
googleSignInClient.silentSignIn().addOnCompleteListener(this, new OnCompleteListener<GoogleSignInAccount>() {
@Override
public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
handleAuthentication(task);
}
});
}
private void handleAuthentication(Task<GoogleSignInAccount> completedTask) {
try {
googleSignInAccount = completedTask.getResult(ApiException.class);
[...]