リピーターがワンタップ ログインを使用できるように、ユーザーに保存を促すメッセージを表示できます パスワードを Google に登録します。ユーザーは、保存した認証情報を使用して アプリを開発できます。
パスワード保存フローを開始すると、 パスワードを保存するかどうかを選択できるボトムシート ダイアログ 保存する Google アカウントを選択できます
パスワード保存のボトムシート ダイアログを起動
パスワードを認証した後、パスワード保存ダイアログを開く必要があります。 ユーザー名とパスワードを入力します。認証情報をメモリに保持しながら あります。認証情報が有効であることを確認したら、 [保存] ダイアログを以下の手順で保存します。
新しい
SignInPassword
オブジェクトを作成します。ユーザー側で初期化する必要があります。 サービスで使用している ID(ユーザー名やメールアドレスなど) パスワードを入力します。private static final int REQUEST_CODE_GIS_SAVE_PASSWORD = 2; /* unique request id */ private void savePassword() { SignInPassword signInPassword = new SignInPassword(userId, password); ...
SavePasswordRequest
オブジェクトを作成するSavePasswordRequest savePasswordRequest = SavePasswordRequest.builder().setSignInPassword(signInPassword).build();
パスワード保存ダイアログを表示する
PendingIntent
を取得するIdentity.getCredentialSavingClient
を実行して、フローを開始します。Identity.getCredentialSavingClient(activity) .savePassword(savePasswordRequest) .addOnSuccessListener( result -> { startIntentSenderForResult( result.getPendingIntent().getIntentSender(), REQUEST_CODE_GIS_SAVE_PASSWORD, /* fillInIntent= */ null, /* flagsMask= */ 0, /* flagsValue= */ 0, /* extraFlags= */ 0, /* options= */ null); })
パスワードの保存結果を処理する
onActivityResult でパスワード保存フローの結果を処理します。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_GIS_SAVE_PASSWORD) {
if (resultCode == Activity.RESULT_OK) {
/* password was saved */
} else if (resultCode == Activity.RESULT_CANCELED) {
/* password saving was cancelled */
}
}
}
private ActivityResultLauncher<IntentSenderRequest> savePasswordHandler =
registerForActivityResult(new ActivityResultContracts.StartIntentSenderForResult(), result -> {
// handle intent result here
});