2

Android (4.4) で HCE を介してクレジットカードをエミュレートするアプリケーションを開発しようとしています。NFC ステッカーから読み取ることができるターゲット アプリケーションがあり、デバイスで NFC をエミュレートすることで同じ結果を達成したいと考えています。このアプリケーションは ISO 14443-4 Type A/IsoDep の読み取りをサポートしています。私が理解しているように、アプリケーションが読み取る形式は次のとおりです。目標は、ターゲット アプリケーションが送信したデータを正しい形式で受信できるようにすることですが、まだこれを達成していません。私は他の例を調べようとしましたが、それらを見つけるのは難しく、現時点では私の知識はいくらか限られています.

ターゲット アプリケーションが必要とする AID を apduservice.xml に設定しました

問題は、ターゲット アプリケーションに正しいデータを送信するにはどうすればよいかということです。track1 "B5105105105105100^CARDDATA^121222200000181000000" と track2 "5105105105105100=121222200000181000000" の両方を送信したい

次のことを試しましたが、成功しませんでした:

コード:

public static String pan = "B5105105105105100^CARDDATA^121222200000181000000,5105105105105100=121222200000181000000";

@Override
public byte[] processCommandApdu(byte[] apdu, Bundle extras) {
    byte[] response = new byte[] {};

    return response = pan.getBytes();
}

私は何が欠けていますか?アドバイスをありがとう。

4

2 に答える 2

5

クレジット カードが単純なメモリ タグではないことを見逃しています。代わりに、かなり複雑なプロトコルを使用して通信します (ISO 7816-4 に準拠したファイル構造で構成され、特定のコマンドを使用してカードにアプリケーションの選択、ファイル データの返信、トランザクションの実行などを指示します)。クレジット カード プロトコルは EMVCo によって指定されており、ここで見つけることができます。

于 2014-02-12T10:24:32.600 に答える
1

例として、このプロジェクトを確認できます ( https://bitbucket.org/tbellenger/hce_mobile_card/commits/52c7081cca5017638d4a74e40cb44a4bd7efb7f6 )。ただし、新しいコードによって機能が損なわれるため、このコミットを過ぎないでください。このアプリは、NFC 経由で paywave または paypass クレジット カードを読み取り、カードの情報を電話に保存できます。次に、電話を非接触型決済端末にかざすと、電話から受け取った情報が送信されます。ここに必要なヘルパー ライブラリがあります ( https://bitbucket.org/tbellenger/card_tools )。幸運を。

于 2014-04-29T23:50:13.327 に答える