androidスマホからSuicaの履歴を10件以上取得する
AndroidでSuicaの履歴を読んでみた.
といってもほとんどこのブログの写経だけど
Felicaにコマンドを送ることでブロックを読み取ることができるらしい.
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カード) ‐ 通信用語の基礎知識