Google 登录错误 getToken() -> NEED_REMOTE_CONSENT

And*_*and 11 android google-api google-sheets google-cloud-platform

几个月前,我的谷歌登录程序工作没有问题,但今天模拟器在 Logcat 中回复我这个错误:

\n

E/Auth:[GoogleAccountDataServiceImpl] getToken() -> NEED_REMOTE_CONSENT。应用程序:com_pro.bandweb.mycpstore,服务:oauth2:email https://www.googleapis.com/auth/spreadsheets.readonly openid 配置文件

\n

尝试在谷歌中查找,但我没有找到任何建议...这是我用于 sigIn 的代码:

\n
public void InitGoogle() throws IOException {\n        GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)\n                .requestScopes(new Scope(SPREADSHEETS_SCOPE))\n                .requestEmail()\n                .build();\n        googleSignInClient = com.google.android.gms.auth.api.signin.GoogleSignIn.getClient(this, gso);\n\n        if (GoogleSignIn.getLastSignedInAccount(this) == null) {\n            Log.v(TAG, "getting sign-on again");\n            //startActivityForResult(googleSignInClient.getSignInIntent(), RC_SIGN_IN);\n            SignInActivityResult.launch(googleSignInClient.getSignInIntent());\n        } else {\n            Log.v(TAG, "sign-on is still good, reusing");\n\n            //faccio la richiesta solo se \xc3\xa8 stato inserito il foglio di google shhet nelle preferenze, altrimenti avviso\n            SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);\n            if (!sharedPreferences.contains(getString(R.string.pref_googleSheetId_key))\n                    || StringUtils.isBlank(sharedPreferences.getString(getString(R.string.pref_googleSheetId_key), ""))\n                    || !(spreadsheetIdPattern.matcher(sharedPreferences.getString(getString(R.string.pref_googleSheetId_key), ""))).find()) {\n                // no Google sheet ID has been specified - can\'t retrieve ingredients\n                progressBar.setVisibility(ProgressBar.GONE);\n                Toasty.info(this, getString(R.string.missing_pref_id_sheet_title), Toasty.LENGTH_LONG, true).show();\n            }else {\n                //scelgo il tipo di sincronizzazione quando inizializzo il tablet, in base alla scelta nelle preferenze\n                if(AppSettings.get().getSyncModeOnStartup() == UPLOAD_DATI)\n                    synchGoogleSheet(UPLOAD_DATI);\n                else if(AppSettings.get().getSyncModeOnStartup() == DOWNLOAD_DATI)\n                    synchGoogleSheet(DOWNLOAD_DATI);\n                else\n                    synchGoogleSheet(UPLOAD_DOWNLOAD_NONE);\n            }\n        }\n        progressBar.setVisibility(ProgressBar.GONE);\n\n..\n..\n..\n..\n\n\n\n\n\nActivityResultLauncher<Intent> SignInActivityResult= registerForActivityResult(\n        new ActivityResultContracts.StartActivityForResult(),\n        new ActivityResultCallback<ActivityResult>() {\n            @Override\n            public void onActivityResult(ActivityResult result) {\n                if(result.getResultCode() != RESULT_CANCELED) {\n                    if (result.getResultCode() == Activity.RESULT_OK && null != result.getData())\n                    {\n                        Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(result.getData());\n                        handleSignInResult(task);\n                    }\n                }else{\n                    progressBar.setVisibility(ProgressBar.GONE);\n                }\n            }\n        });\n
Run Code Online (Sandbox Code Playgroud)\n

小智 1

我在运行 Android 11 的 Google Pixel 5 上也遇到了同样的问题。

2021-08-11 13:32:59.603 29917-30363/? E/Auth: [GoogleAccountDataServiceImpl] getToken() -> NEED_REMOTE_CONSENT. App: de.aoksystems.ma.abp.app.internal, Service: oauth2:https://www.googleapis.com/auth/fitness.activity.read https://www.googleapis.com/auth/fitness.heart_rate.read https://www.googleapis.com/auth/fitness.nutrition.read
Run Code Online (Sandbox Code Playgroud)

但在搭载 Android 11 的三星 S10 上运行良好

4 周前,它起作用了。