0

我几天都面临一个问题,我没有更多的想法。我有一个带有 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);
[...]
4

0 回答 0