2017-05-02 15 views
0

おはようございます、私はスマートカードのチップからデータを読み取って基本的に機能するアンドロイドでアプリケーションを開発することを任されています。それは私が最初に思った "十分に簡単"です。私の職場では、カードリーダーを内蔵したアンドロイドデバイスを購入し、SDKを入手してそれを私に渡しました。 SDKとそれ以上のリサーチを読むと、SDKがすべてカードATRを取得していることがわかりました。個人的なカード情報を含む履歴データが含まれています。AndroidでATR文字列を処理する方法

ここでの問題は、会員数が...カードにエンコードする(彼らの購入の理由)であるが、ATRは、次のようになりますが返された場合(実際の文字がrejiggedされている)ことをされています

3D 6Z 00 00 80 34 80 62 B0 89 35 01 F1 83 00 90 00 

どのようにこれを解析して必要な情報を得ることができますか。従業員番号はチップにエンコードされています。私はカードを読み取りデータを抽出することを意図しています。 私は今、自由に抽出して使用できる値を持つ "名前/値"のペアが表示されると考えていました。だから私の経験不足を赦してください。スマートカードのATRを解析するにはどうすればいいですか?ありがとう

+0

あなたが提供したATRは無効です。達成したいことは何ですか、申し訳ありませんが、私は理解しませんでした。特定のATRパターンに一致するカードにデータを書きたいですか? – arminb

+0

私はATRを変更しました(明らかに私は正しいものを投稿できません)...私が達成したいのは、カードに保存されたREADデータです...しかし、ATRがそうであるように見えます...どうすればATRを作ることができますか?読めるようにするには – ewom2468

+2

メンバーデータがATRでエンコードされていますか? –

答えて

0

ATRを解析することで履歴バイトを抽出できます。

Javaの実装はhereです。あなたがしなければならないだろうすべては、次のとおりです。Perlの実装のために

// your ATR as byte array 
byte[] rawAtr = new byte[] {(byte)3B, (byte)0F, (byte)00, (byte)65, (byte)46, (byte)53, (byte)05, (byte)16, (byte)05, (byte)71, (byte)DF, (byte)00, (byte)00, (byte)00, (byte)80, (byte)6A, (byte)82} 
ATR atr = new ATR(rawAtr); 

byte[] historicalBytes = atr.getHistoricalBytes(); 

hereを参照してください。

ヒストリカルデータは独自の形式にすることができるので、ヒストリカルバイトの内容を解析する方法を知るためには、スマートカードのデータシートを調べなければなりません。

関連する問題