ものを作るのが好きで、Androidを使ったロボットアームなど、
ADKを使用したロボットを勉強会やイベントの展示に持って行っている住友です。
私自身、ソフトウェア開発を生業にしているのですが、
フィジカルコンピューティングという言葉が浸透しつつある昨今ですので
一からロボットを作って見ることにしました。
今回は構想と材料の準備と紹介です。
| Windows8 |
| Android 4.0 |
| 弊社のホームページ見てます。 |
| さっきとは違うアングルから |
| 大きい画面で見れた! |
| Windows8 |
| Android 4.0 |
| 弊社のホームページ見てます。 |
| さっきとは違うアングルから |
| 大きい画面で見れた! |
みなさんは街コンというイベントをご存知でしょうか
街コンとは、地域振興を目的とした大規模な合コンイベントです。
参加者は少ない場合でも100名、多い時は1000名を超えます。
街コンは地域の商店街で開催されることが多く、地域活性化の側面をもっていますが
合コンなので、参加者が出会いを求められるという側面ももっています。
座席指定で男女が必ずテーブルを囲むように案内されることや
気になる異性に声をかけやすくする仕組みがある場合があります。
街コン - Wikipedia
http://ja.wikipedia.org/wiki/%E8%A1%97%E3%82%B3%E3%83%B3
[こののぼりが目印!]
横浜最大の街コンイベントです。
横浜市関内を中心に、横浜市のさまざまな場所で開催されています。
完全事前受付制となっており
受付でリストバンドを受け取った後、街コン参加店舗で
食べ放題、飲み放題となります。
濱コンオフィシャルサイト | 濱コン
http://www.hamacon.jp/
濱コン@横濱 | Facebook
http://www.facebook.com/hamacon.jp
今回濱コン事務局さんと協力して、街コンにNFCを組込みました。
全国初!NFCを街コンに実戦投入しましたので、そちらのレポートを書きます。
プレスリリースはこちら
街コン支援システム「NFCで街コンつく~る」を提供開始
http://www.brilliantservice.co.jp/press/pdf/nfc-machikon.pdf
今回参加したイベントは20代限定のイベントでした。
通常は年齢制限のない濱コンですが、今回は20代のみの参加者となります。
濱コンUnder30~【20代限定】横浜へ集え!素敵な出会いをGet!(街コン) | 横濱史上最大規模の地域活性化イベント・濱コン
http://www.hamacon.jp/satellite_120817/index.html
受付では事前に登録した情報と、リストバンドをひもづけるために
パソコンとPaSoRiを使ってヒモ付作業をします。
参加者にはひもづけられたリストバンドを装着してもらい
街コンに参加してもらいます。
今回使用したリストバンドがこちらです。
裏にシール型のNFCタグが貼られています。
NFCタグにはFeliCa Liteを使用しております。
今回もSonyさんにご協力いただきました!ありがとうございます!
参加者は店舗入退店時に、スタッフのもつスマホにリストバンドをかざしてもらうことで
入店状況を記録します。
ここは仕組み上不安なところでした。
リストバンドをタッチするということが馴染みないので
実施にやってみたら、みんな面倒がってタッチしてくれないんじゃないかな…と考えていました。
しかし実際にやってみると、慣れないのは最初だけで
慣れてくると積極的にタッチしていただけていたので、無駄な不安だったみたいです(笑)
サーバに蓄積されたデータから、参加者に直接混雑状況を配信します。
店内ではみなさん楽しそうに過ごしていました。
ぱっと見は普通の居酒屋さんっぽいですが
リストバンドをつけていることで、「あ、この人も同じイベントに参加しているんだ」という一体感とか安心感がありますね(笑)
私自身街コンを目にすることが初めてだったのですが
さまざまな人が参加し、非常に活気のあるイベントでした。(私も参加したかった!!)
街コンの中でも、特に濱コンは大人気です。応募総数を明かすことはできないのですが
多くの参加希望者が集まったそうです。
ちなみに次回開催は9月8日に1000人規模で開催されますので、参加されてはいかがでしょうか。
受付もまもなく開始と聞いていますので、濱コンホームページをこまめにチェックしてみてください!
もちろんそちらでもNFCが使われますよ!
今回、参加人数は男女200名とあまり大きいものではありませんでしたが
貴重なデータが得られましたので、今後に活かしてもっとよいシステムに改良していきたいと思います!
文責:カスタマー開発部 品川開発課 山下 智樹
みなさんは街コンというイベントをご存知でしょうか
街コンとは、地域振興を目的とした大規模な合コンイベントです。
参加者は少ない場合でも100名、多い時は1000名を超えます。
街コンは地域の商店街で開催されることが多く、地域活性化の側面をもっていますが
合コンなので、参加者が出会いを求められるという側面ももっています。
座席指定で男女が必ずテーブルを囲むように案内されることや
気になる異性に声をかけやすくする仕組みがある場合があります。
街コン - Wikipedia
http://ja.wikipedia.org/wiki/%E8%A1%97%E3%82%B3%E3%83%B3
[こののぼりが目印!]
横浜最大の街コンイベントです。
横浜市関内を中心に、横浜市のさまざまな場所で開催されています。
完全事前受付制となっており
受付でリストバンドを受け取った後、街コン参加店舗で
食べ放題、飲み放題となります。
濱コンオフィシャルサイト | 濱コン
http://www.hamacon.jp/
濱コン@横濱 | Facebook
http://www.facebook.com/hamacon.jp
今回濱コン事務局さんと協力して、街コンにNFCを組込みました。
全国初!NFCを街コンに実戦投入しましたので、そちらのレポートを書きます。
プレスリリースはこちら
街コン支援システム「NFCで街コンつく~る」を提供開始
http://www.brilliantservice.co.jp/press/pdf/nfc-machikon.pdf
今回参加したイベントは20代限定のイベントでした。
通常は年齢制限のない濱コンですが、今回は20代のみの参加者となります。
濱コンUnder30~【20代限定】横浜へ集え!素敵な出会いをGet!(街コン) | 横濱史上最大規模の地域活性化イベント・濱コン
http://www.hamacon.jp/satellite_120817/index.html
受付では事前に登録した情報と、リストバンドをひもづけるために
パソコンとPaSoRiを使ってヒモ付作業をします。
参加者にはひもづけられたリストバンドを装着してもらい
街コンに参加してもらいます。
今回使用したリストバンドがこちらです。
裏にシール型のNFCタグが貼られています。
NFCタグにはFeliCa Liteを使用しております。
今回もSonyさんにご協力いただきました!ありがとうございます!
参加者は店舗入退店時に、スタッフのもつスマホにリストバンドをかざしてもらうことで
入店状況を記録します。
ここは仕組み上不安なところでした。
リストバンドをタッチするということが馴染みないので
実施にやってみたら、みんな面倒がってタッチしてくれないんじゃないかな…と考えていました。
しかし実際にやってみると、慣れないのは最初だけで
慣れてくると積極的にタッチしていただけていたので、無駄な不安だったみたいです(笑)
サーバに蓄積されたデータから、参加者に直接混雑状況を配信します。
店内ではみなさん楽しそうに過ごしていました。
ぱっと見は普通の居酒屋さんっぽいですが
リストバンドをつけていることで、「あ、この人も同じイベントに参加しているんだ」という一体感とか安心感がありますね(笑)
私自身街コンを目にすることが初めてだったのですが
さまざまな人が参加し、非常に活気のあるイベントでした。(私も参加したかった!!)
街コンの中でも、特に濱コンは大人気です。応募総数を明かすことはできないのですが
多くの参加希望者が集まったそうです。
ちなみに次回開催は9月8日に1000人規模で開催されますので、参加されてはいかがでしょうか。
受付もまもなく開始と聞いていますので、濱コンホームページをこまめにチェックしてみてください!
もちろんそちらでもNFCが使われますよ!
今回、参加人数は男女200名とあまり大きいものではありませんでしたが
貴重なデータが得られましたので、今後に活かしてもっとよいシステムに改良していきたいと思います!
文責:カスタマー開発部 品川開発課 山下 智樹
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,
getClass()), 0);
IntentFilter[] intentFilter = new IntentFilter[] {
new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED),
};
String[][] techList = new String[][] {
{
android.nfc.tech.NdefFormatable.class.getName()
}, {
android.nfc.tech.Ndef.class.getName()
}
};
mNfcAdapter.enableForegroundDispatch(this, pendingIntent, intentFilter, techList);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,
getClass()), 0);
IntentFilter[] intentFilter = new IntentFilter[] {
new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED),
};
String[][] techList = new String[][] {
{
android.nfc.tech.NdefFormatable.class.getName()
}, {
android.nfc.tech.Ndef.class.getName()
}
};
mNfcAdapter.enableForegroundDispatch(this, pendingIntent, intentFilter, techList);
NFC Data Exchange Formatと呼ばれるもので、NFCでデータのやり取りをする際に使われるデータ・フォーマットです。
仕様書はこちらにあります
NFC Forum : Technical Specifications
http://www.nfc-forum.org/specs/spec_list/#ndefts
NDEFには一つのNdef Messageが含まれます。
またNdef Messageには0個以上のNdef Recordが含まれます。
Ndef Recordは大きくヘッダとペイロードの2つに分けることができます。
カスタマー開発部 山下智樹
NFC Data Exchange Formatと呼ばれるもので、NFCでデータのやり取りをする際に使われるデータ・フォーマットです。
仕様書はこちらにあります
NFC Forum : Technical Specifications
http://www.nfc-forum.org/specs/spec_list/#ndefts
NDEFには一つのNdef Messageが含まれます。
またNdef Messageには0個以上のNdef Recordが含まれます。
Ndef Recordは大きくヘッダとペイロードの2つに分けることができます。
カスタマー開発部 山下智樹
Record Type DefinitionのTextフォーマットのことを指します。
仕様書はこちらにあります。
NFC Forum : Technical Specifications
http://www.nfc-forum.org/specs/spec_list/#rtds
"Hello, World." を表したNDEFは以下のようになります。
D1 01 10 54
02 65 6E 48
65 6C 6C 6F
2C 20 57 6F
72 6C 64 2E
カスタマー開発部 山下智樹
Record Type DefinitionのTextフォーマットのことを指します。
仕様書はこちらにあります。
NFC Forum : Technical Specifications
http://www.nfc-forum.org/specs/spec_list/#rtds
"Hello, World." を表したNDEFは以下のようになります。
D1 01 10 54
02 65 6E 48
65 6C 6C 6F
2C 20 57 6F
72 6C 64 2E
カスタマー開発部 山下智樹
Record Type Definitionの略称で、NDEFのTNFにWell Known Typeが指定された際に、使用できるTYPEです。
仕様書はこちらにあります。
NFC Forum : Technical Specifications
http://www.nfc-forum.org/specs/spec_list/#rtds
カスタマー開発部 山下智樹
Record Type Definitionの略称で、NDEFのTNFにWell Known Typeが指定された際に、使用できるTYPEです。
仕様書はこちらにあります。
NFC Forum : Technical Specifications
http://www.nfc-forum.org/specs/spec_list/#rtds
カスタマー開発部 山下智樹
AndroidManifest.xml
1. NFCのIntentFilterを定義する
タグの種類によって制限をかけたいので、TECH_DISCOVEREDというアクションを設定します。
2. 制限するタグの定義ファイルを設定する
タグを制限するにはxmlファイルを定義する必要があります。
/res/xml/nfc_tech_filter.xml
1. 制限するタグを定義する
NfcFのみ反応したい場合、以下のように定義します。
NfcFかつNdefが定義されている場合のみ反応したい場合、以下のように定義します。
NfcFとNfcA両方に反応したい場合、以下のように定義します。
HomeActivity.java
1. Intentを受信したらNFC-IDを表示する
NFCのIntentが呼ばれた時にNFC-IDを取得し、Toastに表示します。
Intentを受信するイベントはアプリが起動する場合と、バックスタックにいる場合があるので
onCreate(:Bundle):void とonNewIntent(:Intent):void の2ヶ所から呼び出しています。

https://github.com/bs-nfc/NFCHandlerOnHome
カスタマー開発部 山下智樹
AndroidManifest.xml
1. NFCのIntentFilterを定義する
タグの種類によって制限をかけたいので、TECH_DISCOVEREDというアクションを設定します。
2. 制限するタグの定義ファイルを設定する
タグを制限するにはxmlファイルを定義する必要があります。
/res/xml/nfc_tech_filter.xml
1. 制限するタグを定義する
NfcFのみ反応したい場合、以下のように定義します。
NfcFかつNdefが定義されている場合のみ反応したい場合、以下のように定義します。
NfcFとNfcA両方に反応したい場合、以下のように定義します。
HomeActivity.java
1. Intentを受信したらNFC-IDを表示する
NFCのIntentが呼ばれた時にNFC-IDを取得し、Toastに表示します。
Intentを受信するイベントはアプリが起動する場合と、バックスタックにいる場合があるので
onCreate(:Bundle):void とonNewIntent(:Intent):void の2ヶ所から呼び出しています。

https://github.com/bs-nfc/NFCHandlerOnHome
カスタマー開発部 山下智樹
AndroidでNFC対応アプリを作成する場合、どのタグに反応するかを指定することができます。(ACTION_TAG_DISCOVEREDの場合必要ありません)
指定できるタグの種類は以下があります。
これらのクラスはandroid.nfc.techパッケージに定義されています。
それぞれを説明します。
どのようなタグが該当するか、私の手持ちのタグをかざしてみます。
Suica
Taspo
運転免許証
Edy
Clipper Card
Brother ラベルプリンター RL-700S
ネットカフェの会員証
名刺
(中にNDEFフォーマットにvCardを書き込んだFeliCa Liteを仕込んでいます)
OCTOPUS
NFC QUEST Card
カスタマー開発部 山下智樹
AndroidでNFC対応アプリを作成する場合、どのタグに反応するかを指定することができます。(ACTION_TAG_DISCOVEREDの場合必要ありません)
指定できるタグの種類は以下があります。
これらのクラスはandroid.nfc.techパッケージに定義されています。
それぞれを説明します。
どのようなタグが該当するか、私の手持ちのタグをかざしてみます。
Suica
Taspo
運転免許証
Edy
Clipper Card
Brother ラベルプリンター RL-700S
ネットカフェの会員証
名刺
(中にNDEFフォーマットにvCardを書き込んだFeliCa Liteを仕込んでいます)
OCTOPUS
NFC QUEST Card
カスタマー開発部 山下智樹
AndroidでNFCに関するActionは以下の3つがあります。
NFCタグが検出されるといずれかのActionのIntentが発行されます。
どういう場合に発行されるか説明します。
タグの種類によってスタート地点が異なります。
タグがNDEFにフォーマットされている場合、ACTION_NDEF_DISCOVEREDの判定が行われます。
端末にインストールされているアプリでACTION_NDEF_DISCOVEREDを処理できるアプリが存在した場合
そちらにIntentが渡されます。
ACTION_NDEF_DISCOVEREDを処理できるアプリが存在しなかった場合、もしくはタグがNDEFでフォーマットされていない場合は
ACTION_TECH_DISCOVEREDの判定が行われます。
ACTION_TECH_DISCOVEREDはタグの種類によってフィルタリングすることが可能なIntentです。
(たとえばTypeAにのみ反応するアプリや、TypeFのみに反応するアプリなど)
端末にインストールされているアプリでACTION_TECH_DISCOVEREDを処理できるアプリが存在した場合
そちらにIntentが渡されます。
上記2つのActionを処理できるアプリが存在しなかった場合、ACTION_TAG_DISCOVEREDが発行されます。
Actionを優先順位順に並べると
ACTION_NDEF_DISCOVERED、ACTION_TECH_DISCOVERED、ACTION_TAG_DISCOVEREDとなり
優先順位の高い方から処理可能か判定されます。
途中で処理可能と判定された場合、優先順位の低いActionの判定は行われません。
アプリを作る際に注意しなければならないのは、どのようなタグに反応するアプリなのか決定し
できるだけ優先順位の高いActionで起動できるようにすること
安易にACTION_TAG_DISCOVEREDを指定すると、優先順位の高いアプリにIntentを奪われて起動されない事があります。
カスタマー開発部 山下智樹
AndroidでNFCに関するActionは以下の3つがあります。
NFCタグが検出されるといずれかのActionのIntentが発行されます。
どういう場合に発行されるか説明します。
タグの種類によってスタート地点が異なります。
タグがNDEFにフォーマットされている場合、ACTION_NDEF_DISCOVEREDの判定が行われます。
端末にインストールされているアプリでACTION_NDEF_DISCOVEREDを処理できるアプリが存在した場合
そちらにIntentが渡されます。
ACTION_NDEF_DISCOVEREDを処理できるアプリが存在しなかった場合、もしくはタグがNDEFでフォーマットされていない場合は
ACTION_TECH_DISCOVEREDの判定が行われます。
ACTION_TECH_DISCOVEREDはタグの種類によってフィルタリングすることが可能なIntentです。
(たとえばTypeAにのみ反応するアプリや、TypeFのみに反応するアプリなど)
端末にインストールされているアプリでACTION_TECH_DISCOVEREDを処理できるアプリが存在した場合
そちらにIntentが渡されます。
上記2つのActionを処理できるアプリが存在しなかった場合、ACTION_TAG_DISCOVEREDが発行されます。
Actionを優先順位順に並べると
ACTION_NDEF_DISCOVERED、ACTION_TECH_DISCOVERED、ACTION_TAG_DISCOVEREDとなり
優先順位の高い方から処理可能か判定されます。
途中で処理可能と判定された場合、優先順位の低いActionの判定は行われません。
アプリを作る際に注意しなければならないのは、どのようなタグに反応するアプリなのか決定し
できるだけ優先順位の高いActionで起動できるようにすること
安易にACTION_TAG_DISCOVEREDを指定すると、優先順位の高いアプリにIntentを奪われて起動されない事があります。
カスタマー開発部 山下智樹
NFCが使えるAPI Levelは9以降になります。
しかし9はNFCを使うには貧弱なAPIしかないので10以降を指定します。
NFCをもっていない端末にはダウンロードされないように
機能の指定を行います。
NFCを使うためには以下のパーミッションが必要になります。
NFCに反応してIntentが発行されるとデフォルトのLaunch Mode(standard)では新しくActivityを作ろうとします。
何度も同じActivityを作られては困るので、launchModeを指定します。
NFCタグに反応するための準備とNFCタグを受け取る部分を実装します。
use-featureで制限していますので、ここで終了するパターンはありません。
NFCが無効になっていた場合、アプリを終了します。
終了するよりも、設定画面に遷移した方が親切です。
設定する項目は2つあります。
3-1. 反応するActionを指定する(詳しくはこちら)
3-2. 反応するタグの種類を指定する(詳しくはこちら)
アプリがフォアグラウンドにいない時にはNFCに反応しなくていいので
onPauseにて登録を解除します。
NFCタグに反応したIntentはonNewIntentを通して受け取ります。
IntentのExtraに格納されたデータを使い、タグとやり取りをします。
以下のコードではNFC-IDを受け取り文字列に整形した後に
Toastで表示しています。
https://github.com/bs-nfc/NFCHandlerOnApp
カスタマー開発部 山下智樹
NFCが使えるAPI Levelは9以降になります。
しかし9はNFCを使うには貧弱なAPIしかないので10以降を指定します。
NFCをもっていない端末にはダウンロードされないように
機能の指定を行います。
NFCを使うためには以下のパーミッションが必要になります。
NFCに反応してIntentが発行されるとデフォルトのLaunch Mode(standard)では新しくActivityを作ろうとします。
何度も同じActivityを作られては困るので、launchModeを指定します。
NFCタグに反応するための準備とNFCタグを受け取る部分を実装します。
use-featureで制限していますので、ここで終了するパターンはありません。
NFCが無効になっていた場合、アプリを終了します。
終了するよりも、設定画面に遷移した方が親切です。
設定する項目は2つあります。
3-1. 反応するActionを指定する(詳しくはこちら)
3-2. 反応するタグの種類を指定する(詳しくはこちら)
アプリがフォアグラウンドにいない時にはNFCに反応しなくていいので
onPauseにて登録を解除します。
NFCタグに反応したIntentはonNewIntentを通して受け取ります。
IntentのExtraに格納されたデータを使い、タグとやり取りをします。
以下のコードではNFC-IDを受け取り文字列に整形した後に
Toastで表示しています。
https://github.com/bs-nfc/NFCHandlerOnApp
カスタマー開発部 山下智樹
今月25日~27日まで、東京お台場のホテル日航東京でNFC Forumの総会が開催されていました。
NFC ForumとはNFCの技術仕様とテスト仕様の策定、普及・啓蒙活動を行う世界的な標準化団体です。http://www.nfc-forum.org/home/
AndroidにGoogle I/Oがあるように、NFCにはNFC Forum総会があるんですね。
その中でソリューション・ショーケースという、NFCを使ったサービスやプロダクトを紹介しながら世界中のNFC関係者と交流するカジュアルパーティがあり、今回はその会場を使ってNFC QUESTをやりました。
会場には世界中から集まったSIer、通信事業者、機器メーカー、半導体メーカー、試験機メーカーなどNFC Forumメンバーが180名以上がいました。海外勢が半数以上のため、NFC QUESTもすべて英語に作り替えてやりました。
展示ブースはNFC QUEST以外に12ブースありましたが、ペイメントやヘルス機器に混じって、ゲームをやっているのはブリリアントとソニーさんの2社だけでした。
会場でも異色のブースとあって、入れ替わり立ち代わり見に来ていただくことができました。特に海外の参加者たちはNFCをエンターテイメントに使うという発想に非常に食付いていました。
「ヨーロッパやアメリカではまだNFCが課金しか使われてないのに、日本はこんなサービスがもうあるのか!?NFCが課金以外でも使えるとは!!」
といって海外勢は驚いてました。
国籍は違えど、みんなゲームは大好き。ということで、多くの人がチェックポイントを回って魔王と対戦をしに来てくれました。これで、外国人にもNFC QUESTが十分通用することがわかったのでそろそろ海外のイベントに持ち込んでやってみようかと思います。
文責:カスタマー営業部 藤田健介
今月25日~27日まで、東京お台場のホテル日航東京でNFC Forumの総会が開催されていました。
NFC ForumとはNFCの技術仕様とテスト仕様の策定、普及・啓蒙活動を行う世界的な標準化団体です。http://www.nfc-forum.org/home/
AndroidにGoogle I/Oがあるように、NFCにはNFC Forum総会があるんですね。
その中でソリューション・ショーケースという、NFCを使ったサービスやプロダクトを紹介しながら世界中のNFC関係者と交流するカジュアルパーティがあり、今回はその会場を使ってNFC QUESTをやりました。
会場には世界中から集まったSIer、通信事業者、機器メーカー、半導体メーカー、試験機メーカーなどNFC Forumメンバーが180名以上がいました。海外勢が半数以上のため、NFC QUESTもすべて英語に作り替えてやりました。
展示ブースはNFC QUEST以外に12ブースありましたが、ペイメントやヘルス機器に混じって、ゲームをやっているのはブリリアントとソニーさんの2社だけでした。
会場でも異色のブースとあって、入れ替わり立ち代わり見に来ていただくことができました。特に海外の参加者たちはNFCをエンターテイメントに使うという発想に非常に食付いていました。
「ヨーロッパやアメリカではまだNFCが課金しか使われてないのに、日本はこんなサービスがもうあるのか!?NFCが課金以外でも使えるとは!!」
といって海外勢は驚いてました。
国籍は違えど、みんなゲームは大好き。ということで、多くの人がチェックポイントを回って魔王と対戦をしに来てくれました。これで、外国人にもNFC QUESTが十分通用することがわかったのでそろそろ海外のイベントに持ち込んでやってみようかと思います。
文責:カスタマー営業部 藤田健介
Android KitKat Hacks プロが教えるテクニック & ツール
株式会社ブリリアントサービス 著
NFC Hacks プロが教えるテクニック&ツール
株式会社ブリリアントサービス 著
Androidプログラミングの教科書
藤田 竜史、要 徳幸、住友 孝郎、日高 正博、小林 慎治、木村 尭海 著
入門Androidアプリケーションテスト
瀬戸 直喜/株式会社ブリリアントサービス 著
実践スマートフォンアプリケーション開発
株式会社ブリリアントサービス、八木 俊広、原 昇平、かわかみ ひろき 著
ジオモバイルプログラミング
郷田まり子/宅間俊志/近藤昭雄 著
ANDROID HACKS プロが教えるテクニック&ツール
株式会社ブリリアントサービス 著