4年前に以下のエントリーを書きました。
Ketaiライブラリを使うと、Androidの中身を理解していないても、なんとなくデバイスを利用したプログラムが作れちゃうので、学生プロジェクトとかに利用していました。
学生証にICカードが埋め込まれるようになって、そのICタグをいろいろと使えないだろうか?と思ってやってみたのが上記の記事だったと思います。たぶん。
この学生証のICタグは出席チェックに利用しています。
ただ、ICタグを読み込むための専用のリーダー(Android端末)は事務室においてあるので、それを取りに行くのが面倒という声が以前からあがっていました。
何とかしようかな。。。と思って、ちょうど非常勤もなかったので、ここ2日間くらい作業していました。
とりあえず形になりました。
成果物はネット記事の継ぎ接ぎなので。。。とくに新しいことはありません。ソースもうちの大学固有でもありますのであまり役立ちそうにありません。
とりあえず、今回、いろいろと調べたことで参考になりそうな情報を残しておこう。。。と思います。足跡ということで。
まず、上記のエントリーでは、Processing3のAndroidモードでKetaiライブラリを利用していたのですが。。。このライブラリは使えるんですが、NFCのサンプルは動作しません。それがわかるまで3,4時間くらい無駄にしたと思います。
確かに、revision.txtに書いてありました。Processing for AndroidのPAppletの仕様が変わったらしく、それから使えなくなったようです。2年前から変わっていないので。。。たぶん、作者も忙しいのでしょう。
そこから、とりあえずAndroid Studioをいれて、普通にAndroidアプリ開発の環境でNFCアプリを作ろうとしました。
あれこれサンプルを動かしてみたのですが。。。どうもうまく動かず、結局、上記のエントリーで参考にした記事でうごきました。この記事は2013年ですからね。。。その記事がいまだに使えるって凄いことですよね。iOSならこうはいかないでしょう。
とりあえず動かすのに成功したのが昨日でした。
今日は講義がなかったのですが、とりあえず作業しようと思い出勤して、以下をネットの記事をぐぐりながら作業していきました。
- 学籍番号の切り出し
- 日付や時限数の自動挿入
- 万が一アプリが落ちたらデータがなくなるのでファイルに書き込み、そして復元
- 結果はユニバーサルパスポートというシステムにいれなければならないので、とりあえずクリップボードにいれてCSVファイルにする機能
- 読み取り状態によって音を鳴らす
ここまでで夕方。
ただ、上記のコードはICカードをスマホにかざしたときにonCreateが呼ばれる仕様になっているので。。。アプリを表示するためにわざわざICカードをかざさなければなりません。これはダメだ。。。
ということで、別のコードを探し始めました。
調べると、以下のコードが見つかりました。これと上記のエントリーで書いたTECHのデータを持ってくる部分を組み合わせることで、アプリが前面にいるときだけICカードを読み取りできるようになり、アプリが残り続けるので操作もできるようになりました。めでたし。
コードもないし、そもそもNFCプログラミングについても書いてないので。。。わけのわからないエントリーになりましたが、もし、AndroidでICカード読み取りするのであれば、上記の2つの記事は参考になりますよ。。。ということでご容赦を。