Submit Search
Upload
URIやTEXTをBEAMするアプリを作ったよ!
•
Download as PPTX, PDF
•
1 like
•
2,710 views
treby
Follow
福岡Androidハッカソンにて。http://atnd.org/events/30243
Read less
Read more
Technology
Report
Share
Report
Share
1 of 17
Download now
Recommended
Beam利用アプリ紹介+関連技術ネタ
Beam利用アプリ紹介+関連技術ネタ
Kenichi Kambara
PHP+DB
PHP+DB
Sawada Makoto
Lesson01
Lesson01
MRI
20140802 Bluetooth を使って Universall App で大連携
20140802 Bluetooth を使って Universall App で大連携
Takayoshi Tanaka
P2P 技術と Cloud コンピューティングへの応用
P2P 技術と Cloud コンピューティングへの応用
Leonardo Ken Orihara
Mmo game networking_1
Mmo game networking_1
Katsutoshi Makino
Gunosy Go lang study #6 net http url
Gunosy Go lang study #6 net http url
Innami Satoshi
Mongo db勉強会
Mongo db勉強会
otmb
Recommended
Beam利用アプリ紹介+関連技術ネタ
Beam利用アプリ紹介+関連技術ネタ
Kenichi Kambara
PHP+DB
PHP+DB
Sawada Makoto
Lesson01
Lesson01
MRI
20140802 Bluetooth を使って Universall App で大連携
20140802 Bluetooth を使って Universall App で大連携
Takayoshi Tanaka
P2P 技術と Cloud コンピューティングへの応用
P2P 技術と Cloud コンピューティングへの応用
Leonardo Ken Orihara
Mmo game networking_1
Mmo game networking_1
Katsutoshi Makino
Gunosy Go lang study #6 net http url
Gunosy Go lang study #6 net http url
Innami Satoshi
Mongo db勉強会
Mongo db勉強会
otmb
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+Groovy
Daisuke Ando
Hadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-update
Taisuke Yamada
Programming under capability mode
Programming under capability mode
Yuichiro Naito
第三回IoT関連技術勉強会 データ通信編
第三回IoT関連技術勉強会 データ通信編
tzm_freedom
V6prog OSC2013Hokkaido
V6prog OSC2013Hokkaido
Kohki Ohhira
M1 gp_OneSwarm
M1 gp_OneSwarm
Daito Akimura
サーバレスモードRTMFP
サーバレスモードRTMFP
itoz itoz
IPv6マルチプレフィックスの話
IPv6マルチプレフィックスの話
YasunobuToyota
CouchDB JP & BigCouch
CouchDB JP & BigCouch
Yohei Sasaki
http2.0 negotiation&header compression
http2.0 negotiation&header compression
yuki-f
Custom Package Building with Poudriere
Custom Package Building with Poudriere
Yuichiro Naito
Gpsデータをgit hub上に公開する方法
Gpsデータをgit hub上に公開する方法
Kentaro Oba
hiding
hiding
cookies 146
Multipeer connectivity_エスキュービズム勉強会0523
Multipeer connectivity_エスキュービズム勉強会0523
エンジニア勉強会 エスキュービズム
Web packaging IETF 側
Web packaging IETF 側
yuki-f
Network Forensics Puzzle Contest に挑戦 #2
Network Forensics Puzzle Contest に挑戦 #2
彰 村地
フレッシャーズのためのパケット解析入門
フレッシャーズのためのパケット解析入門
彰 村地
Protocol Buffers 入門
Protocol Buffers 入門
Yuichi Ito
Apache Camel Netty component
Apache Camel Netty component
ssogabe
避けては通れないバイナリ地獄 もっとRTDを-
避けては通れないバイナリ地獄 もっとRTDを-
Tomoki YAMASHITA
リーダブルコードが良書だったのでまとめました
リーダブルコードが良書だったのでまとめました
Takumi Sato
Windows8 x NFC - Windows8 Developers カンファレンス Vol2.0 -
Windows8 x NFC - Windows8 Developers カンファレンス Vol2.0 -
Ikkai Takeshi
More Related Content
What's hot
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+Groovy
Daisuke Ando
Hadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-update
Taisuke Yamada
Programming under capability mode
Programming under capability mode
Yuichiro Naito
第三回IoT関連技術勉強会 データ通信編
第三回IoT関連技術勉強会 データ通信編
tzm_freedom
V6prog OSC2013Hokkaido
V6prog OSC2013Hokkaido
Kohki Ohhira
M1 gp_OneSwarm
M1 gp_OneSwarm
Daito Akimura
サーバレスモードRTMFP
サーバレスモードRTMFP
itoz itoz
IPv6マルチプレフィックスの話
IPv6マルチプレフィックスの話
YasunobuToyota
CouchDB JP & BigCouch
CouchDB JP & BigCouch
Yohei Sasaki
http2.0 negotiation&header compression
http2.0 negotiation&header compression
yuki-f
Custom Package Building with Poudriere
Custom Package Building with Poudriere
Yuichiro Naito
Gpsデータをgit hub上に公開する方法
Gpsデータをgit hub上に公開する方法
Kentaro Oba
hiding
hiding
cookies 146
Multipeer connectivity_エスキュービズム勉強会0523
Multipeer connectivity_エスキュービズム勉強会0523
エンジニア勉強会 エスキュービズム
Web packaging IETF 側
Web packaging IETF 側
yuki-f
Network Forensics Puzzle Contest に挑戦 #2
Network Forensics Puzzle Contest に挑戦 #2
彰 村地
フレッシャーズのためのパケット解析入門
フレッシャーズのためのパケット解析入門
彰 村地
What's hot
(17)
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+Groovy
Hadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-update
Programming under capability mode
Programming under capability mode
第三回IoT関連技術勉強会 データ通信編
第三回IoT関連技術勉強会 データ通信編
V6prog OSC2013Hokkaido
V6prog OSC2013Hokkaido
M1 gp_OneSwarm
M1 gp_OneSwarm
サーバレスモードRTMFP
サーバレスモードRTMFP
IPv6マルチプレフィックスの話
IPv6マルチプレフィックスの話
CouchDB JP & BigCouch
CouchDB JP & BigCouch
http2.0 negotiation&header compression
http2.0 negotiation&header compression
Custom Package Building with Poudriere
Custom Package Building with Poudriere
Gpsデータをgit hub上に公開する方法
Gpsデータをgit hub上に公開する方法
hiding
hiding
Multipeer connectivity_エスキュービズム勉強会0523
Multipeer connectivity_エスキュービズム勉強会0523
Web packaging IETF 側
Web packaging IETF 側
Network Forensics Puzzle Contest に挑戦 #2
Network Forensics Puzzle Contest に挑戦 #2
フレッシャーズのためのパケット解析入門
フレッシャーズのためのパケット解析入門
Similar to URIやTEXTをBEAMするアプリを作ったよ!
Protocol Buffers 入門
Protocol Buffers 入門
Yuichi Ito
Apache Camel Netty component
Apache Camel Netty component
ssogabe
避けては通れないバイナリ地獄 もっとRTDを-
避けては通れないバイナリ地獄 もっとRTDを-
Tomoki YAMASHITA
リーダブルコードが良書だったのでまとめました
リーダブルコードが良書だったのでまとめました
Takumi Sato
Windows8 x NFC - Windows8 Developers カンファレンス Vol2.0 -
Windows8 x NFC - Windows8 Developers カンファレンス Vol2.0 -
Ikkai Takeshi
NXT開発環境(ETロボコン向けTOPPERS活用セミナー5)
NXT開発環境(ETロボコン向けTOPPERS活用セミナー5)
Takuya Azumi
Clrh 110716 wcfwf
Clrh 110716 wcfwf
Tomoyuki Obi
月刊NDEF 2013年8月号
月刊NDEF 2013年8月号
Hirokuma Ueno
NFC元年 ~AndroidからみたNFCについて~
NFC元年 ~AndroidからみたNFCについて~
Kouta Imanaka
Linux Kernel Seminar in tripodworks
Linux Kernel Seminar in tripodworks
tripodworks
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
perfを使ったpostgre sqlの解析(後編)
perfを使ったpostgre sqlの解析(後編)
Daichi Egawa
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Panda Yamaki
CpawCTF 勉強会 Network
CpawCTF 勉強会 Network
Takaaki Hoyo
perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)
NTT DATA OSS Professional Services
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
Seiya Mizuno
研究生のためのC++ no.2
研究生のためのC++ no.2
Tomohiro Namba
Dalvikバイトコードリファレンスの読み方 改訂版
Dalvikバイトコードリファレンスの読み方 改訂版
Takuya Matsunaga
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Panda Yamaki
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
YoheiOkuyama
Similar to URIやTEXTをBEAMするアプリを作ったよ!
(20)
Protocol Buffers 入門
Protocol Buffers 入門
Apache Camel Netty component
Apache Camel Netty component
避けては通れないバイナリ地獄 もっとRTDを-
避けては通れないバイナリ地獄 もっとRTDを-
リーダブルコードが良書だったのでまとめました
リーダブルコードが良書だったのでまとめました
Windows8 x NFC - Windows8 Developers カンファレンス Vol2.0 -
Windows8 x NFC - Windows8 Developers カンファレンス Vol2.0 -
NXT開発環境(ETロボコン向けTOPPERS活用セミナー5)
NXT開発環境(ETロボコン向けTOPPERS活用セミナー5)
Clrh 110716 wcfwf
Clrh 110716 wcfwf
月刊NDEF 2013年8月号
月刊NDEF 2013年8月号
NFC元年 ~AndroidからみたNFCについて~
NFC元年 ~AndroidからみたNFCについて~
Linux Kernel Seminar in tripodworks
Linux Kernel Seminar in tripodworks
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
perfを使ったpostgre sqlの解析(後編)
perfを使ったpostgre sqlの解析(後編)
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
CpawCTF 勉強会 Network
CpawCTF 勉強会 Network
perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
研究生のためのC++ no.2
研究生のためのC++ no.2
Dalvikバイトコードリファレンスの読み方 改訂版
Dalvikバイトコードリファレンスの読み方 改訂版
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
More from treby
失敗から学ぶEM方法論
失敗から学ぶEM方法論
treby
Vue.js + Vuexチーム開発実践の事例
Vue.js + Vuexチーム開発実践の事例
treby
Frontendと向き合う
Frontendと向き合う
treby
Railsのフロントエンドのトレンドと実際〜事業を進めながら、レールに乗り続けるためのテクニック〜
Railsのフロントエンドのトレンドと実際〜事業を進めながら、レールに乗り続けるためのテクニック〜
treby
モダンJSでモダンなWebアプリケーションを作ろう!
モダンJSでモダンなWebアプリケーションを作ろう!
treby
Octocatは技術的負債の夢を見るか?
Octocatは技術的負債の夢を見るか?
treby
Shinjuku.rb #61 RubyKaigi2018予習
Shinjuku.rb #61 RubyKaigi2018予習
treby
The Art of Collaboration
The Art of Collaboration
treby
楽しく学ぶ?API
楽しく学ぶ?API
treby
VueとdockerとAWSとチームとアイマスと私
VueとdockerとAWSとチームとアイマスと私
treby
アイマスハッカソン2017
アイマスハッカソン2017
treby
Sinatraで触れる生SQL
Sinatraで触れる生SQL
treby
Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~
Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~
treby
最近のRailsフロントエンド開発の紹介
最近のRailsフロントエンド開発の紹介
treby
たたかうFFI
たたかうFFI
treby
mastodon API
mastodon API
treby
TH@NK YOU for SMILE!!とミリオンボーダーbot
TH@NK YOU for SMILE!!とミリオンボーダーbot
treby
Paperclip
Paperclip
treby
このみさんにPRしてもらう
このみさんにPRしてもらう
treby
reading suture
reading suture
treby
More from treby
(20)
失敗から学ぶEM方法論
失敗から学ぶEM方法論
Vue.js + Vuexチーム開発実践の事例
Vue.js + Vuexチーム開発実践の事例
Frontendと向き合う
Frontendと向き合う
Railsのフロントエンドのトレンドと実際〜事業を進めながら、レールに乗り続けるためのテクニック〜
Railsのフロントエンドのトレンドと実際〜事業を進めながら、レールに乗り続けるためのテクニック〜
モダンJSでモダンなWebアプリケーションを作ろう!
モダンJSでモダンなWebアプリケーションを作ろう!
Octocatは技術的負債の夢を見るか?
Octocatは技術的負債の夢を見るか?
Shinjuku.rb #61 RubyKaigi2018予習
Shinjuku.rb #61 RubyKaigi2018予習
The Art of Collaboration
The Art of Collaboration
楽しく学ぶ?API
楽しく学ぶ?API
VueとdockerとAWSとチームとアイマスと私
VueとdockerとAWSとチームとアイマスと私
アイマスハッカソン2017
アイマスハッカソン2017
Sinatraで触れる生SQL
Sinatraで触れる生SQL
Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~
Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~
最近のRailsフロントエンド開発の紹介
最近のRailsフロントエンド開発の紹介
たたかうFFI
たたかうFFI
mastodon API
mastodon API
TH@NK YOU for SMILE!!とミリオンボーダーbot
TH@NK YOU for SMILE!!とミリオンボーダーbot
Paperclip
Paperclip
このみさんにPRしてもらう
このみさんにPRしてもらう
reading suture
reading suture
URIやTEXTをBEAMするアプリを作ったよ!
1.
URIやテキストをBEAMする アプリをつくったよ!
2012/7/1 Android Hackathon@Fukuoka @treby006
2.
Android BEAMって?
こんなのです。
3.
実装するには 1.
マニフェストファイルへNFCのパーミッション を追加する 2. NFCチップの制御用インスタンスを取得する 3. 送信メッセージ作成用インターフェイスを実装す る 4. NFCチップの制御用インスタンスと送信用イン ターフェイスを関連付ける 5. データを受け取る処理を実装する 6. データを受信する先を設定するためのintentfilter を追加する
4.
BEAM=NDEFデータのやり取り NDEF =
NFC Data Exchange Format NDEF MessageとNDEF Record ◦ 一つ以上のNDEF Messageに一つ以上の NDEF Record ◦ 単純なものでは一つのNDEF Messageに 一つのNDEF Record
5.
ところでNDEFといえば
NFC TagInfoでNFCタグを読んだ時のアレ
6.
てなわけで、実装内容
Well-knownなNDEF MessageをBEAM ◦ とりあえずURIとTEXTだけ実装 ◦ どちらを送るかは選べるように BEAMされた側の端末はNFCタグを読 み込んだ時のような動作をする。 ◦ URI:ブラウザ起動 ◦ TEXT:タグインテント
7.
先ほどのBEAMの実装方法 1.
マニフェストファイルへNFCのパーミッション を追加する 2. NFCチップの制御用インスタンスを取得する 3. 送信メッセージ作成用インターフェイスを実装す る 4. NFCチップの制御用インスタンスと送信用イン ターフェイスを関連付ける 5. データを受け取る処理を実装する 6. データを受信する先を設定するためのintentfilter を追加する
8.
今回の実装範囲 1.
マニフェストファイルへNFCのパーミッション を追加する 2. NFCチップの制御用インスタンスを取得する 3. 送信メッセージ作成用インターフェイスを実装す る 4. NFCチップの制御用インスタンスと送信用イン ターフェイスを関連付ける 5. データを受け取る処理を実装する 6. データを受信する先を設定するためのintentfilter を追加する
9.
ポイント:NDEFデータの生成
android.nfc.NdefMessage ◦ NdefRecordの集合からなる android.nfc.NdefRecord ◦ NdefRecord(short tnf, byte[] type, byte[] id, byte[] payload) tnf …… TNF type …… Type id …… 通常new byte[0] payload …… 実際のデータなど ◦ TNFとTypeでpayloadの解釈方法が決まる!
10.
URIを表すNDEF Record TNF
: NdefRecord.TNF_WELL_KNOWN Type:NdefRecord.RTD_URI ペイロードデータ ◦ 実データは2バイト目から ◦ 1バイト目にどんな接頭語を入れるかコー ドで指定する 容量の小さなタグに入れるときなどデータ量削 減が目的
11.
1バイトコードの例
URI Record Type Definition Technical Specification ◦ NFC Forumのサイトからダウンロードできるよ!
12.
URIのNDEF Record生成コー ド public NdefRecord
createUriRecord(byte identifier, String uri) { byte[] uriByte = uri.getBytes(); byte[] payload = new byte[uriByte.length + 1]; payload[0] = identifier; System.arraycopy(uriByte, 0, payload, 1, uriByte.length); NdefRecord uriRecord = new NdefRecord( NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_URI, new byte[0], payload); return uriRecord; }
13.
TEXTを表すNDEF Record ペイロードに文字コードと言語を指定
する。 言語コード:RFC3066準拠
14.
TEXTのNDEF Record生成コー ド public NdefRecord
createTextRecord(boolean isUtf8, String language, String text) { byte[] textByte = text.getBytes(); byte[] langByte = language.getBytes(); byte[] payload = new byte[textByte.length + langByte.length + 1]; if(!isUtf8) payload[0] = (byte) 0x80; payload[0] += langByte.length; System.arraycopy(langByte, 0, payload, 1, langByte.length); System.arraycopy(textByte, 0, payload, 1 + langByte.length, textByte.length); ! NdefRecord textRecord = new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_TEXT, new byte[0], payload); return textRecord; }
15.
ユーザインタフェース
16.
デモ
17.
参考文献 http://developer.android.com/intl/ja/gui
de/topics/connectivity/nfc/nfc.html#p2p http://techbooster.org/android/device/1 0979/
Download now