Passwörter mit der Funktion „Anmeldedaten speichern“ speichern
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Wenn Sie die One Tap-Anmeldung für wiederkehrende Nutzer aktivieren möchten, können Sie Nutzer auffordern, ihr Passwort bei Google zu speichern. Der Nutzer kann sich dann mit seinen gespeicherten Passwörtern in Ihrer App und im Web anmelden.
Wenn Sie den Ablauf zum Speichern von Passwörtern starten, wird dem Nutzer ein Bottomsheet-Dialogfeld angezeigt, in dem er auswählen kann, ob und in welchem Google-Konto er sein Passwort speichern möchte.
Bottomsheet-Dialogfeld zum Speichern von Passwörtern öffnen
Das Dialogfeld zum Speichern des Passworts sollte erst angezeigt werden, nachdem Sie den Nutzernamen und das Passwort mit Ihrem Backend authentifiziert haben. Anmeldedaten während der Authentifizierung im Arbeitsspeicher behalten. Nachdem Sie bestätigt haben, dass die Anmeldedaten gültig sind, rufen Sie das Speicherdialogfeld auf. Gehen Sie dazu so vor:
Erstellen Sie ein neues SignInPassword-Objekt. Sie sollte mit der Nutzer-ID initialisiert werden, die der Nutzer für Ihren Dienst verwendet (z. B. Nutzername oder E-Mail-Adresse), und dem Passwort, das Sie speichern möchten.
private static final int REQUEST_CODE_GIS_SAVE_PASSWORD = 2; /* unique request id */
private void savePassword() {
SignInPassword signInPassword = new SignInPassword(userId, password);
...
Rufen Sie ein PendingIntent ab, um das Dialogfeld zum Speichern des Passworts über Identity.getCredentialSavingClient aufzurufen und den Ablauf zu starten:
Ergebnisse des Speicherns von Passwörtern verarbeiten
Verarbeiten Sie das Ergebnis des Passwortspeichervorgangs 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});
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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 });"]]