Androidアプリを作ろう (1)
Androidアプリを作ろう (2)
Androidアプリを作ろう (3)
ししゃもを食べながらAndroidアプリを作っている(どうでもいい情報)。
ししゃもという名前は、柳と関係があったような。。。
前回は、permissionの設定を調べていた。
今回は最終回。
どうやら、カードの読み出しには優先度があるらしい。
ブリリアントサービスさんのNFC技術ブログの話がわかりやすかった。
困ったことに、優先度が高いアプリがインストールされていると、低い方はかすりもしないようなのだ。
アプリが前面に出ているとかそういうのは関係ないみたいだけど、なんとかならんもんかね。
とりあえず、NDEFとかそういうのは考えたくないので、NFC-A、とか、NFC-B、というくらいの読み取りをしたい。
そうなると、ACTION_TECH_DISCOVEREDか、ACTION_TAG_DISCOVEREDのどちらかになる。
NDEFでなければ、次はTECHのようなので、TECHにしておく。
一番優先度が低いTAGは、どういう場合に使うのかね(つつましいアプリとかか)?
あとは、Android Developersを見ながらやっていく。
- フィルタを作る(xml/xxxxxxx.xml)
名前は何でもいいらしいが、TECHでひっかけるフィルタを作るようだ。
res/xml/xxx.xmlという名前なら何でもいいらしい。 - つくったフィルタをAndroidManifestに書く
<meta-data>を自分で書かんといかん。
使うaction名(TECH_DISCOVERED)と、フィルタ名(@xml/xxx)
フィルタは、<tech-list>で囲む。
1つの<tech-list>内に書いたものはAND条件らしい。NFC-AでNDEF、など。
<tech-list>を複数書けば、それはOR条件になる。
NFC関係っぽいのは、こういうところなのかな。
そして、私にとってはそれからが長い。
Androidアプリの作り方があまりわからないからだ。
慣れた人にとってはどうでもいいことだろうが、やったことを書いておこう。
- layoutを作る
デフォルトでres/layout/activity_main.xmlができているので、ダブルクリック。
なんか、昔よりハイカラになってる。。
ボタンなんかを置いてみた。 - OnClickを指定
1.6くらいだっただろうか、ボタンのクリックメソッドが指定できるようになったのは。
ただ、あまり使われている例を見たことがない。
やはり、リソースとソースファイルに分割されてしまうのを嫌がるのだろうか。
私?
私は実装が減るのを歓迎するので、OnClickプロパティに書いたよ。 - インテント
カードを検知すると、インテントが飛んでくるようだ。
忘れてたけど、インテントが飛んでくるとonCreate()が呼ばれて、最初から始まったような感じになってしまうのだな。
インテントが来る前を覚えていたいので、プリファレンスを使うことになった。 - Toastはスタックする
ボタンを押したら、押した内容をToastで出すようにした。
そうしたのだが、ボタンをたくさん押しても表示してくれない。
どうやら、スタックして、タイムアウト時間が経過したら上書きするようだ。
ほら、どうでもいい感じだったでしょう。
でもね、よくわからん人にとっては、それぞれがよくわからなかったのだ。
そんなこんなで、Androidでの初NFCアプリを作った。
完成?版は、Bの方。
しかし、なぜかうちのNexus7はNFC-Bのカードを検出できなかった。
「なにかかざされた」というのはわかったようだが、エラー音らしきものがするのだ。
しかたなく、NFC-Bでやるべきところを、NFC-Fに置き換えたのがFの方。
同じpackageなので、どっちかしかインストールできないと思う。
なにをするアプリか、説明してなかった。
起動するとボタンが4つ出てくるが、その真ん中にTextViewが1つある。
ボタンを押したりNFCカードをかざしたりして、そこに「SUCCESS !」と表示させるアプリだ。
ヒントは、
- B版はNFC-Bを認識してNFC-Fは認識しない、F版はNFC-Bの代わりにNFC-Fを認識。
つまり、Bを認識する方を意図としている。 - NFCカードは2種類必要。
- すんませんが、NDEFは書かれていない方がよいです。
書いてあると、うまくいかない気がします。。 - Toastに出てくる数字は、手順。手順から外れると0に戻る。
- 数字が進む手順がわかると、すぐわかりそうな気がする。
というところか。
SUCCESS、と表示されるだけで、それ以上のものは何もないです。
初めて作るのがこんなアプリとは・・・。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。