2017/01/29

[android][nfc]Beamアプリを作る

HCE, Reader modeと来たら、P2Pをやらねばならぬのぅ。
というわけで、Android Beamの、NDEFを投げたり取ったりするだけのアプリを作る。
大きいファイルのやりとりをするサンプルもあるが、今回はNDEFだけだ。
Sharing Files with NFC | Android Developers


Androidで使えるO2O技術まとめ解説(終):AndroidビームとPush通知で最強のO2Oアプリを作る (3/3) - @IT
ここら辺にサンプルがあるので、見れば分かるだろう。
あと、NFC Hacksも読みながらやっている。

createNdefMessage()が呼ばれるタイミングは、端末を向かい合わせて、星が流れる画面になったところだ。
LLCPのデータ交換が行われるようになったところ、といえば良いだろうか。
この状態で小さく表示されているアプリをタップすると、相手にデータが送られる。
タップというよりは、相手の方に押すというイメージだろうか。
そして、相手にPUSHされるとonNdefPushComplete()が呼ばれる。

 

まずは、ここまでをコミットしておく。
EditTextに文字を入れ、別のAndroid端末と向かい合わせ、星が流れる画面になったらサムネイル画面をタップする。
そうすると、相手に送られるであろう。
https://github.com/hirokuma/AndroidBeamSample/tree/ca064f1c87acfd396e4ca6eef4832ef847911087

ButtonやTextViewは使っていないので、気にしないでおくれ。


受信する方は、NDEFタグの読み取りと同じだそうだ。

今回はNDEF Textを送受信している。
Textのところは、こちらからお借りした。
なっぴーさんもともきーさんも、お二人とも元気だろうか。。。
ReadRTDText/HomeActivity.java at master · bs-nfc/ReadRTDText

 

Textの送受信まで取り付けたのが、こちら。
https://github.com/hirokuma/AndroidBeamSample/tree/69b3c0eca2016386cb30a5d1a86a987c4d245281

NDEFなんだけど、IntentではactionがTECH_DISCOVEREDでやってくるのよねぇ。

NDEF Textで文字列を送ったが、バイナリデータを送りたい場合はcreateExternal()がよいのだろうか?
気になるところだが、今回はおしまい。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。