雑多なノート

プログラミング初心者がメモとかを書きます。基礎的なこともメモとして。偏食系のアニオタ。

androidスマホからSuicaの履歴を10件以上取得する

AndroidSuicaの履歴を読んでみた.
といってもほとんどこのブログの写経だけど

www.kotemaru.org

Felicaにコマンドを送ることでブロックを読み取ることができるらしい.

www.sony.co.jp

FeliCaカード ユーザーズマニュアル 抜粋版を読んで送信コマンドについてはなんとなく理解.
物理層の説明から読んで挫折しかけたけど.
マニュアルがネイティブの日本語であるって素晴らしい.

ブログのサンプルコードだと10件までしか取得してなかったけどブロックエレメントのブロック番号を増やすことで10件より先も取得できた.

なぜか16進数で与えないとエラーになったけど.

本当はループで与えたいんだけど出来なかったのでとても頭の悪いコードになった
まぁ動けばいいか

以下が10-20件の取得するコマンドを生成する部分
参考にしたブログのコードとほとんど変えてない

ByteArrayOutputStream bout = new ByteArrayOutputStream(100);

bout.write(0);          
bout.write(0x06);        
bout.write(idm);         
bout.write(1);          
bout.write(0x0f);       
bout.write(0x09);       
bout.write(10);        

bout.write(0x80);
bout.write(0x0A);

bout.write(0x80);
bout.write(0x0B);

bout.write(0x80);
bout.write(0x0C);

bout.write(0x80);
bout.write(0x0D);

bout.write(0x80);
bout.write(0x0E);

bout.write(0x80);
bout.write(0x0F);

bout.write(0x80);
bout.write(0x10);

bout.write(0x80);
bout.write(0x11);

bout.write(0x80);
bout.write(0x12);

bout.write(0x80);
bout.write(0x13);

サービスコードとブロック数が解析されているのでそこを変えれば他の情報も取得できそう
サイバネ規格 (ICカード) ‐ 通信用語の基礎知識