Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Per attivare l'accesso One Tap per gli utenti di ritorno, puoi chiedere agli utenti di salvare
la password con Google. L'utente potrà accedere con le password salvate
nella tua app e sul web.
Quando avvii il flusso di salvataggio della password, all'utente viene mostrato un
dialogo in un foglio inferiore che gli consente di scegliere se salvare la password
e in quale Account Google salvarla.
Avvia la finestra di dialogo del foglio inferiore per il salvataggio della password
Dovresti avviare la finestra di dialogo di salvataggio della password dopo aver autenticato
il nome utente e la password con il backend. Mantieni le credenziali in memoria durante
l'autenticazione. Dopo aver verificato la validità delle credenziali, avvia la
finestra di dialogo di salvataggio procedendo nel seguente modo:
Crea un nuovo oggetto SignInPassword. Deve essere inizializzato con l'ID utente che utilizza con il tuo servizio (ad esempio il nome utente o l'indirizzo email) e la password che vuoi salvare.
private static final int REQUEST_CODE_GIS_SAVE_PASSWORD = 2; /* unique request id */
private void savePassword() {
SignInPassword signInPassword = new SignInPassword(userId, password);
...
Ottieni un PendingIntent per visualizzare la finestra di dialogo di salvataggio della password da
Identity.getCredentialSavingClient e avvia il flusso:
Gestire i risultati del salvataggio delle password
Gestisci il risultato del flusso di salvataggio della password in onActivityResult:
@OverridepublicvoidonActivityResult(intrequestCode,intresultCode,Intentdata){super.onActivityResult(requestCode,resultCode,data);if(requestCode==REQUEST_CODE_GIS_SAVE_PASSWORD){if(resultCode==Activity.RESULT_OK){/* password was saved */}elseif(resultCode==Activity.RESULT_CANCELED){/* password saving was cancelled */}}}
privateActivityResultLauncher<IntentSenderRequest>savePasswordHandler=registerForActivityResult(newActivityResultContracts.StartIntentSenderForResult(),result->{// handle intent result here});
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Save passwords with Credential Saving\n\n| **Caution:** One Tap for Android is deprecated. To ensure the continued security and usability of your app, [migrate to\n| Credential Manager](/identity/sign-in/credential-manager). Credential Manager supports passkey, password, and federated identity authentication (such as Sign-in with Google), stronger security, and a more consistent user experience.\n\nTo enable One Tap sign-in for returning users, you can prompt users to save\ntheir password with Google. The user will be able to sign in with their saved\npasswords in your app and on the web.\n\nWhen you start the save password flow, the user will be presented with a\nbottomsheet dialog allowing them to choose if they want to save their password\nand to which Google Account they want to save it.\n\nLaunch password save bottomsheet dialog\n---------------------------------------\n\nYou should launch the password save dialog after you have authenticated the\nusername and password with your backend. Keep the credentials in memory while\nauthenticating. After you have confirmed the credentials are valid, launch the\nsave dialog by doing the following:\n\n1. Create a new `SignInPassword` object. It should be initialized with the user\n id they use with your service (for example their username or email address)\n and password that you want to save.\n\n private static final int REQUEST_CODE_GIS_SAVE_PASSWORD = 2; /* unique request id */\n private void savePassword() {\n SignInPassword signInPassword = new SignInPassword(userId, password);\n ...\n\n2. Create a `SavePasswordRequest` object\n\n SavePasswordRequest savePasswordRequest =\n SavePasswordRequest.builder().setSignInPassword(signInPassword).build();\n\n3. Get a `PendingIntent` to display the password save dialog from\n `Identity.getCredentialSavingClient` and launch the flow:\n\n Identity.getCredentialSavingClient(activity)\n .savePassword(savePasswordRequest)\n .addOnSuccessListener(\n result -\u003e {\n startIntentSenderForResult(\n result.getPendingIntent().getIntentSender(),\n REQUEST_CODE_GIS_SAVE_PASSWORD,\n /* fillInIntent= */ null,\n /* flagsMask= */ 0,\n /* flagsValue= */ 0,\n /* extraFlags= */ 0,\n /* options= */ null);\n })\n\nHandle password save results\n----------------------------\n\nHandle the result of the password save flow in onActivityResult: \n\n @Override\n public void onActivityResult(int requestCode, int resultCode, Intent data) {\n super.onActivityResult(requestCode, resultCode, data);\n if (requestCode == REQUEST_CODE_GIS_SAVE_PASSWORD) {\n if (resultCode == Activity.RESULT_OK) {\n /* password was saved */\n } else if (resultCode == Activity.RESULT_CANCELED) {\n /* password saving was cancelled */\n }\n }\n }\n\n**Note:** Consider using the [Activity Result API](https://developer.android.com/training/basics/intents/result) to manage Activity callbacks. \n\n private ActivityResultLauncher\u003cIntentSenderRequest\u003e savePasswordHandler =\n registerForActivityResult(new ActivityResultContracts.StartIntentSenderForResult(), result -\u003e {\n // handle intent result here\n });"]]