Android 15 베타 2부터 androidx.credentials:1.5.0-alpha01이 있으면 개발자는 인증 관리자 요청이 있는 사용자 이름 또는 비밀번호 입력란 사용자가 이러한 뷰 중 하나에 초점을 맞추면 상응하는 요청이 사용자 인증 정보로 전송됩니다. 관리자 그 결과로 생성되는 사용자 인증 정보가 여러 제공업체에서 집계되어 표시됩니다. 자동 완성 UI에 적용될 수 있습니다. 이 기능은 사용자가 실수로 인증 관리자 계정 선택기로 이동한 다음 관련 입력란을 탭합니다.
Jetpack androidx.credentials 라이브러리가 개발자가 이 기능에 사용할 수 있습니다.
그림 1: 비밀번호, 패스키, Google 계정으로 로그인을 사용하여 사용자 인증 정보로 자동 완성 결과
구현
인증 관리자를 사용하여 자동 완성 결과에 사용자 인증 정보를 표시하려면 다음을 사용하세요.
표준 구현을 사용하여 GetCredentialRequest
를 빌드한 후 설정합니다.
관련 뷰로 이동합니다. 응답이
다음과 같이 getCredential
API 호출 또는 PendingGetCredentialRequest
에서 가져옵니다.
다음 예에 나와 있습니다.
먼저 GetCredentialRequest
를 생성합니다.
Kotlin
// Retrieves the user's saved password for your app. val getPasswordOption = GetPasswordOption() // Get a passkey from the user's public key credential provider. val getPublicKeyCredentialOption = GetPublicKeyCredentialOption( requestJson = requestJson ) val getCredRequest = GetCredentialRequest( listOf(getPasswordOption, getPublicKeyCredentialOption) )
자바
// Retrieves the user's saved password for your app. GetPasswordOption getPasswordOption = new GetPasswordOption(); // Get a passkey from the user's public key credential provider. GetPublicKeyCredentialOption getPublicKeyCredentialOption = new GetPublicKeyCredentialOption(requestJson); GetCredentialRequest getCredRequest = new GetCredentialRequest( Arrays.asList(getPasswordOption, getPublicKeyCredentialOption) );
다음으로 getCredential
API를 호출합니다. 인증 관리자가 표시됩니다.
선택기
Kotlin
coroutineScope.launch { try { val result = credentialManager.getCredential( context = activityContext, // Use an activity-based context. request = getCredRequest ) handleSignIn(result); } catch (GetCredentialException e) { handleFailure(e); } }
자바
coroutineScope.launch(new CoroutineScopeRunnable() { @Override public void run(@NonNull CoroutineScope scope) { try { GetCredentialResponse result = credentialManager.getCredential( activityContext, // Use an activity-based context. getCredRequest ); handleSignIn(result); } catch (GetCredentialException e) { handleFailure(e); } } });
마지막으로 자동 완성 환경을 사용 설정합니다. getCredRequest
를 관련 뷰(예: username, password
)로 설정하여 사용자가 이러한 뷰와 상호작용할 때 자동 완성에서 사용자 인증 정보 결과를 사용 설정합니다.
Kotlin
import androidx.credentials.PendingGetCredentialRequest usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest( getCredRequest) { response -> handleSignIn(response) } passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest( getCredRequest) { response -> handleSignIn(response) }
Java
import androidx.credentials.CredentialManagerViewHandler; import androidx.credentials.PendingGetCredentialRequest; CredentialManagerViewHandler.setPendingGetCredentialRequest( usernameEditText, new PendingGetCredentialRequest( getCredRequest, result -> { handleSignIn(result); return null; } ) CredentialManagerViewHandler.setPendingGetCredentialRequest( passwordEditText, new PendingGetCredentialRequest( getCredRequest, result -> { handleSignIn(result); return null; } )