Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Um Smart Lock für Passwörter in Ihre Android-App zu integrieren, müssen Sie dem Start- und Anmeldevorgang Ihrer App Aufrufe an die Credentials API hinzufügen. Das folgende Diagramm zeigt den Ablauf einer typischen Android-App, die Smart Lock für Passwörter verwendet.
Es gibt viele Möglichkeiten, Smart Lock für Passwörter erfolgreich zu integrieren. Die Besonderheiten einer Integration hängen von der Struktur und der Nutzererfahrung der App ab. Der folgende Ablauf wird für die meisten Apps empfohlen. Anwendungen, die diesen Ablauf verwenden, bieten der User Experience folgende Vorteile:
Bestehende Nutzer Ihres Dienstes, für die nur ein einziges Ausweisdokument gespeichert ist, werden sofort angemeldet und gelangen direkt zur Ansicht für angemeldete Nutzer, wenn sie die App öffnen.
Nutzer, die mehrere Anmeldedaten gespeichert oder die automatische Anmeldung deaktiviert haben, müssen nur auf ein Dialogfeld antworten, bevor sie die Ansicht für angemeldete Nutzer in der Anwendung aufrufen.
Nutzer, die keine gespeicherten Anmeldedaten haben oder sich noch nicht registriert haben, können ihren Namen und ihre E-Mail-Adresse durch einmaliges Tippen auswählen und intelligent zur Anmelde- oder Registrierungsansicht weitergeleitet werden, wobei diese Informationen vorausgefüllt sind.
Wenn sich Nutzer abmelden, werden sie nicht automatisch wieder angemeldet.
Anmeldedaten abrufen
Wenn beim Start der App noch kein Nutzer angemeldet ist, rufen Sie CredentialsClient.request() auf.
Wenn der Task erfolgreich ist, rufen Sie die Anmeldedaten des Nutzers über getResult().getCredential() ab und melden Sie sich damit an.
Wenn Task fehlschlägt und die Ausnahme eine Instanz von ResolvableApiException ist und getStatusCode()RESOLUTION_REQUIRED zurückgibt, ist eine Nutzereingabe erforderlich, um Anmeldedaten auszuwählen. Rufen Sie startResolutionForResult() auf, um den Nutzer aufzufordern, ein gespeichertes Konto auszuwählen. Rufen Sie dann getParcelableExtra(Credential.EXTRA_KEY) auf, um die Anmeldedaten des Nutzers abzurufen und sich damit anzumelden.
Anmeldedaten speichern
Wenn Task mit einem ApiException fehlschlägt und getStatusCode()SIGN_IN_REQUIRED zurückgibt, hat der Nutzer keine gespeicherten Anmeldedaten und muss sich manuell über den aktuellen Anmelde- oder Registrierungsvorgang anmelden oder registrieren. Nachdem der Nutzer die Anmeldung erfolgreich abgeschlossen hat, können Sie ihm die Möglichkeit geben, seine Anmeldedaten für einen späteren Abruf zu speichern (Schritt 5).
Sie können dem Nutzer helfen, sich schneller und einfacher anzumelden oder zu registrieren, indem Sie Anmeldehinweise wie die E-Mail-Adresse des Nutzers abrufen. Der Nutzer kann den Hinweis auswählen und die Eingabe seiner Anmeldedaten überspringen. Wenn für Ihre Anwendung eine Anmeldung durch Nutzer erforderlich ist, können Sie Hinweise sofort nach dem Fehlschlagen der ersten Anforderung von Anmeldedaten abrufen. Andernfalls können Sie warten, bis der Nutzer den Anmelde- oder Registrierungsvorgang startet.
Rufen Sie CredentialsClient.getHintPickerIntent() auf und starten Sie den Intent, um den Nutzer zur Auswahl eines Kontos aufzufordern. Rufen Sie dann getParcelableExtra(Credential.EXTRA_KEY) auf, um den Anmeldehinweis zu erhalten.
Wenn die Nutzer-ID im Hinweis mit einem vorhandenen Nutzer übereinstimmt, füllen Sie das Anmeldeformular vorab aus und lassen Sie den Nutzer das Passwort eingeben, um sich anzumelden.
Wenn die Nutzer-ID des Hinweises mit keinem vorhandenen Nutzer übereinstimmt, füllen Sie das Anmeldeformular mit der ID und dem Namen des Nutzers aus und lassen Sie den Nutzer ein neues Konto erstellen.
Nachdem sich der Nutzer erfolgreich angemeldet oder ein Konto erstellt hat, speichern Sie die Nutzer-ID und das Passwort mit CredentialsClient.save().
Wenn sich der Nutzer über einen föderierten Identitätsanbieter wie Google Log-in angemeldet hat, erstellen Sie das Credential-Objekt mit der E-Mail-Adresse des Nutzers als ID und geben Sie den Identitätsanbieter mit setAccountType an.
Abmelden
Wenn sich der Nutzer abmeldet, solltest du CredentialsClient.disableAutoSignIn() aufrufen, um zu verhindern, dass er sofort wieder angemeldet wird. Wenn die automatische Anmeldung deaktiviert ist, können Nutzer ganz einfach zwischen Konten wechseln – z. B. zwischen Arbeits- und privaten Konten oder zwischen Konten auf gemeinsam verwendeten Geräten –, ohne ihre Anmeldedaten noch einmal eingeben zu müssen.
Bist du bereit, Smart Lock für Passwörter in deine App zu integrieren?
Einfach starten
[null,null,["Zuletzt aktualisiert: 2025-07-25 (UTC)."],[[["\u003cp\u003eSmart Lock for Passwords is deprecated; migrate to Credential Manager for enhanced security and user experience with passkeys, passwords, and federated identities.\u003c/p\u003e\n"],["\u003cp\u003eSmart Lock for Passwords integration involves adding the Credentials API to your app's startup and sign-in flow to retrieve and save user credentials.\u003c/p\u003e\n"],["\u003cp\u003eExisting users with saved credentials can experience automatic sign-in, while new users can benefit from pre-filled forms using sign-in hints.\u003c/p\u003e\n"],["\u003cp\u003eEnsure to disable auto-sign-in upon user sign-out to prevent immediate re-authentication and facilitate account switching.\u003c/p\u003e\n"]]],[],null,["# Android integration flow\n\n| **Deprecated:** Smart Lock for Passwords is deprecated. To ensure the continued security and usability of your app, [migrate to\n| Credential Manager](https://developer.android.com/training/sign-in/passkeys/) today. 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 integrate Smart Lock for Passwords into your Android app, you must add calls\nto the [Credentials API](/android/reference/com/google/android/gms/auth/api/credentials/package-summary)\nto your app's start-up and sign-in flow. The following diagram shows the flow of\na typical Android app that uses Smart Lock for Passwords.\n\nWhile there are many ways to successfully integrate Smart Lock for Passwords,\nand the specifics of an integration depend on the structure and user experience\nof the app, the following flow is recommended for most apps. Apps that use this\nflow have these user experience advantages:\n\n- Existing users of your service that have a single credential saved are immediately signed in, and they will go directly to the signed-in view when they open the app.\n- Users that have multiple credentials saved or that have disabled automatic sign-in need to respond to only one dialog before they go to the app's signed-in view.\n- Users that have no saved credentials or haven't signed up yet can pick their name and email with a single tap and be intelligently sent to either the sign-in or sign-up view, with this information pre-filled.\n- When users sign out, the app ensures they are not automatically signed back in.\n\n[](/static/identity/smartlock-passwords/android/images/smartlock-passwords-flow.png)\n\n### Retrieve credentials\n\n1. When the app starts, if no user is already signed in, call `CredentialsClient.request()`.\n2. If the `Task` is successful, get the user's credentials with `getResult().getCredential()` and use them to sign in.\n3. If the `Task` fails and the exception is an instance of `ResolvableApiException` and `getStatusCode()` returns `RESOLUTION_REQUIRED`, user input is required to pick a credential. Call `startResolutionForResult()` to prompt the user to select a saved account, then call `getParcelableExtra(Credential.EXTRA_KEY)` to get the user's credentials and use them to sign in. If signing in with the retrieved credentials fails because the password is incorrect or the account doesn't exist, delete the credentials from Smart Lock with `CredentialsClient.delete()`.\n\n### Save credentials\n\n4. If the `Task` fails with an `ApiException` and\n `getStatusCode()` returns `SIGN_IN_REQUIRED`, the\n user has no saved credentials and must sign in or sign up manually using\n your current sign-in or sign-up flow. After the user successfully\n completes sign in, you can provide an opportunity for the user to save\n their credentials for future retrieval (step 5).\n\n You can help the user sign in or sign up faster and more\n easily by retrieving sign-in hints, such as the user's email address. The\n user can select the hint and skip typing their credentials. If your app\n requires users to sign in, you might choose to retrieve hints immediately\n after the initial credentials request fails (otherwise, you can wait until\n the user starts the sign-in or sign-up flow).\n 1. Call `CredentialsClient.getHintPickerIntent()` and start the intent to prompt the user to select an account, then call `getParcelableExtra(Credential.EXTRA_KEY)` to get the sign-in hint.\n 2. If the user ID of the hint matches an existing user, pre-fill the sign-in form with it and let the user enter the password to sign in.\n 3. If the user ID of the hint doesn't match an existing user, pre-fill the sign-up form with the user's ID and name, and let the user create a new account.\n5. After the user successfully signs in or creates an account, save the user\n ID and password with `CredentialsClient.save()`.\n\n If the user signed in with a federated identity provider such as Google\n Sign-In, create the `Credential` object with the user's email\n address as the ID and specify the identity provider with\n `setAccountType`.\n\n### Sign out\n\n6. When the user signs out, call `CredentialsClient.disableAutoSignIn()` to prevent the user from being immediately signed back in. Disabling auto-sign-in also enables users to switch between accounts easily---for example, between work and personal accounts, or between accounts on shared devices---without having to re-enter their sign-in information.\n\nReady to integrate Smart Lock for Passwords into your app?\n[Get started](/identity/smartlock-passwords/android/get-started)."]]