Android アプリに、ユーザーにカード番号とそれに対応する PIN 番号を入力するよう要求する画面があります (このセキュリティ リスクは無視してください)。保存しました。
私は次のレイアウトを持っています。
<LinearLayout>
<!-- Id -->
<LinearLayout>
<ImageView/>
<android.support.design.widget.TextInputLayout android:hint="User Id">
<android.support.design.widget.TextInputEditText
android:id="@+id/txtUserId"
android:inputType="number"/>
</android.support.design.widget.TextInputLayout>
</LinearLayout>
<!-- Card Number -->
<LinearLayout>
<ImageView/>
<android.support.design.widget.TextInputLayout android:hint="Card number">
<android.support.design.widget.TextInputEditText
android:id="@+id/txtCardNumber"
android:inputType="number"/>
</android.support.design.widget.TextInputLayout>
</LinearLayout>
<!-- PIN Number -->
<LinearLayout>
<ImageView />
<android.support.design.widget.TextInputLayout android:hint="PIN Number">
<android.support.design.widget.TextInputEditText
android:id="@+id/txtPin"
android:maxLength="4"
android:inputType="numberPassword" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
</LinearLayout>
この状態でクレジット カード フィールドをクリックすると、Google に保存されているクレジット カードの事前入力が適切に試行されます (最初に Google Pay モーダルを使用して CCV を確認します)。何もする必要はありません。悪い点は、CCV を PIN フィールドにも入力することです。これは、POS デバイスでカードを使用して支払いをしようとした場合に PIN 番号を入力する場所であるため、正しくありません。
PIN フィールドを入力すると、カード番号フィールドに入力importantForAutofill="no"
しても、事前入力はまったく行われません。importantForAutofill="yes"
android:autofillHints="creditCardNumber"
同様に、プログラムで実行すると、何も事前入力されません。
inputId.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
inputCardNumber.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_YES);
inputCardNumber.setAutofillHints(View.AUTOFILL_HINT_CREDIT_CARD_NUMBER);
inputPin.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
CCV が PIN フィールドに誤って事前入力されることなく、Google Pay からカード番号を事前入力するにはどうすればよいですか?