Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Şifreler için Smart Lock'u Android uygulamanıza entegre etmek üzere Credentials API'ye uygulamanızın başlatma ve oturum açma akışına çağrı eklemeniz gerekir. Aşağıdaki şemada, Şifreler için Smart Lock kullanan tipik bir Android uygulamasının akışı gösterilmektedir.
Şifreler için Smart Lock'u başarıyla entegre etmenin birçok yolu olsa da entegrasyonun ayrıntıları, uygulamanın yapısına ve kullanıcı deneyimine bağlı olsa da çoğu uygulama için aşağıdaki akış önerilir. Bu akışı kullanan uygulamalar aşağıdaki kullanıcı deneyimi avantajlarına sahiptir:
Hizmetinizin, kayıtlı tek bir kimlik bilgilerine sahip mevcut kullanıcıları hemen oturum açar ve uygulamayı açtıklarında doğrudan oturum açılmış görünüme giderler.
Birden çok kimlik bilgisi kaydetmiş veya otomatik oturum açmayı devre dışı bırakmış kullanıcıların, uygulamanın oturum açmış görünümüne gitmeden önce yalnızca bir iletişim kutusuna yanıt vermesi gerekir.
Kayıtlı kimlik bilgisi olmayan veya henüz kaydolmamış kullanıcılar tek bir dokunuşla adlarını ve e-posta adreslerini seçebilir ve bu bilgiler önceden doldurulmuş olarak, akıllı bir şekilde oturum açma veya kaydolma görünümüne gönderilebilir.
Kullanıcılar oturumu kapattığında, uygulama otomatik olarak tekrar oturum açmamalarını sağlar.
Kimlik bilgilerini alma
Uygulama başladığında, hiçbir kullanıcı oturum açmamışsa CredentialsClient.request() numaralı telefonu arayın.
Task başarılı olursa kullanıcının kimlik bilgilerini getResult().getCredential() ile alın ve oturum açmak için bu bilgileri kullanın.
Task başarısız olursa ve istisna, ResolvableApiException örneğiyse ve getStatusCode(), RESOLUTION_REQUIRED değerini döndürürse kimlik bilgilerini seçmek için kullanıcı girişi gerekir. startResolutionForResult() yöntemini çağırarak kullanıcıdan kayıtlı bir hesabı seçmesini isteyin, ardından getParcelableExtra(Credential.EXTRA_KEY) yöntemini çağırarak kullanıcının kimlik bilgilerini alın ve bu bilgileri kullanarak oturum açın.
Kimlik bilgilerini kaydet
Task, ApiException ile başarısız olursa ve getStatusCode()SIGN_IN_REQUIRED değerini döndürürse kullanıcının kayıtlı kimlik bilgileri yoktur ve mevcut oturum açma ya da kaydolma akışınızı kullanarak manuel olarak oturum açmalı veya kaydolmalıdır. Kullanıcı oturum açmayı başarıyla tamamladıktan sonra, gelecekte yeniden alabilmesi için kimlik bilgilerini kaydetmesine fırsat verebilirsiniz (5. adım).
Oturum açma ipuçlarını (ör. kullanıcının e-posta adresi) alarak kullanıcının daha hızlı ve daha kolay oturum açmasına veya kaydolmasına yardımcı olabilirsiniz. Kullanıcı ipucunu seçip kimlik bilgilerini yazmayı atlayabilir. Uygulamanız kullanıcıların oturum açmasını gerektiriyorsa ilk kimlik bilgisi isteği başarısız olduktan hemen sonra ipuçlarını almayı tercih edebilirsiniz (aksi halde, kullanıcı oturum açma veya kaydolma sürecini başlatana kadar bekleyebilirsiniz).
CredentialsClient.getHintPickerIntent() yöntemini çağırın ve kullanıcının hesap seçmesini istemek için amacı başlatın, ardından oturum açma ipucunu almak için getParcelableExtra(Credential.EXTRA_KEY) hizmetini çağırın.
İpucunun kullanıcı kimliği mevcut bir kullanıcıyla eşleşirse oturum açma formunu önceden doldurun ve kullanıcının oturum açmak için şifreyi girmesine izin verin.
İpucunun kullanıcı kimliği mevcut bir kullanıcıyla eşleşmezse kayıt formunu kullanıcının kimliği ve adıyla önceden doldurun ve kullanıcının yeni bir hesap oluşturmasına izin verin.
Kullanıcı başarıyla oturum açtıktan veya hesap oluşturduktan sonra kullanıcı kimliği ve şifreyi CredentialsClient.save() ile kaydedin.
Kullanıcı, Google ile Oturum Açma gibi birleşik bir kimlik sağlayıcıyla oturum açtıysa, kimlik olarak kullanıcının e-posta adresiyle Credential nesnesini oluşturun ve kimlik sağlayıcıyı setAccountType ile belirtin.
Oturumu kapat
Kullanıcı oturumunu kapattığında, kullanıcının hemen tekrar oturum açmasını önlemek için CredentialsClient.disableAutoSignIn() numaralı telefonu arayın. Otomatik oturum açmayı devre dışı bırakmak, kullanıcıların oturum açma bilgilerini yeniden girmek zorunda kalmadan hesaplar arasında kolayca (örneğin, iş hesapları ile kişisel hesaplar veya paylaşılan cihazlardaki hesaplar arasında) geçiş yapmasına da olanak tanır.
Şifreler için Smart Lock'u uygulamanıza entegre etmeye hazır mısınız?
Kullanmaya başlayın.
[null,null,["Son güncelleme tarihi: 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)."]]