More Related Content
Similar to Beam利用アプリ紹介+関連技術ネタ
Similar to Beam利用アプリ紹介+関連技術ネタ (20)
More from Kenichi Kambara
More from Kenichi Kambara (20)
Beam利用アプリ紹介+関連技術ネタ
- 7. Android Beamとは?
「端末間の通信」を利用したもので、
利用中のアプリに関する情報を送ることが可能
(Android 4.0端末でのみ利用可能)
例えば、ブラウジン
グ中に端末を近づけると
続いて、
画面をタッチ
【Beamで送られるデータ例】
•WebサイトのURL
•YouTubeのURL 同じURLが相手の端
•アドレス帳の連絡先 末で自動的に開かれる
7
- 10. Android Beamの特徴
面倒なペアリング不要で、
気軽に軽量データの送受信に向いている。
•タッチ後「タップしてビーム」押下でデータ送信
➡送信データは開発するアプリで制御可能
•Beam非対応アプリでもマーケットURL送信可能
➡デフォルトでは、マーケットURL送信
•一方でも画面ロックしている場合、動作しない
➡Beamするには予め画面ロック解除が必要
10
- 12. Android Beamによるデータ送信
NDEF(※)形式のメッセージを
Push型で送信することで実現
Android Beamによる情報送信
【方式①】
送信するメッセージをあらかじめセットする[NfcAdapter#setNdefPushMessage()]
【方式②】
端末がBeam圏内に入った時、Beamでの情報送信が完了した時のコールバックを
セットする[NfcAdapter#setNdefPushMessageCallback,setOnNdefPushCompleteCallback]
※NDEF:NFCによる通信時にやり取りし易いデータフォーマット 12
- 13. 方式②の実装例
a.端末がBeam圏内に入った時
【コールバック登録】
NfcAdapterクラスのsetNdefPushMessageCallback
【コールバックメソッド】
public NdefMessage createNdefMessage(NfcEvent event)
【実装例】
条件を満たした時に送信するメッセージの作成
NdefMessage msg = new NdefMessage(new NdefRecord[] {
new NdefRecord(NdefRecord.TNF_MIME_MEDIA,
"application/org.hogecompany.android.beam.sample".
getBytes(Charset.forName("UTF-8")), new byte[0],
“hellohellohello”.getBytes()),
NdefRecord.createApplicationRecord("org.hogecompany.android.beam.sample")}); 13
- 14. 方式②の実装例
a.端末がBeam圏内に入った時
【コールバック登録】
NfcAdapterクラスのsetNdefPushMessageCallback NdefMessage
NdefRecord
【条件を満たした時にコールバックされるメソッド】 (送信データ)
public NdefMessage createNdefMessage(NfcEvent event) NdefRecord
(Android Application Record)
【実装例】
条件を満たした時に送信するメッセージの作成
NdefMessage msg = new NdefMessage(new NdefRecord[] {
new NdefRecord(NdefRecord.TNF_MIME_MEDIA,
"application/org.hogecompany.android.beam.sample".
getBytes(Charset.forName("UTF-8")), new byte[0],
“hellohellohello”.getBytes()),
NdefRecord .createApplicationRecord("org.iplatform.android.beam.sample")});
14
- 15. 方式②の実装例
b.Beamでの情報送信が完了した時
【コールバック登録】
NfcAdapterクラスのsetOnNdefPushCompleteCallback
【コールバックメソッド】
public void onNdefPushComplete(NfcEvent event)
【実装例】
送信が完了した旨を画面でユーザに通知する等
(Toast表示、プログレスバー停止等)
15
- 16. Android Beamによるデータ受信
NDEF形式のメッセージが詰まった
Intentから中身を取り出すことで実現
Android Beamによる情報受信
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
Parcelable[] msgs = intent
.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
NdefMessage msg = (NdefMessage) msgs[0];
Log.i(“TAG”, new String(msg.getRecords()[0].getPayload())));
}
16
Editor's Notes
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n