0

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 からカード番号を事前入力するにはどうすればよいですか?

4

0 に答える 0