3.17 第1回nfc勉強会

37
NFC 基礎の基礎 12317日土曜日

Transcript of 3.17 第1回nfc勉強会

Page 1: 3.17 第1回nfc勉強会

NFC 基礎の基礎

12年3月17日土曜日

Page 2: 3.17 第1回nfc勉強会

自己紹介

下川 敬弘(32歳)

twitter ID: androhi

自宅: 茨城県水戸市

勤務地: 東京都新宿区

12年3月17日土曜日

Page 3: 3.17 第1回nfc勉強会

日本Androidの会

コニュニティ運営委員

茨城支部 支部長

12年3月17日土曜日

Page 4: 3.17 第1回nfc勉強会

ABC2012 Spring in 東京大学

何気にカンファレンス熱いです!

インテルさんとか、FXI Technologiesさんとか

みなさん、来てください。

12年3月17日土曜日

Page 5: 3.17 第1回nfc勉強会

ABC2012 Spring in 東京大学

何気にカンファレンス熱いです!

インテルさんとか、FXI Technologiesさんとか

みなさん、来てください。

12年3月17日土曜日

Page 6: 3.17 第1回nfc勉強会

そもそもNFCって何?

12年3月17日土曜日

Page 7: 3.17 第1回nfc勉強会

NFCって何?

Near Field Communication

近距離無線通信

Felica (SONY) や Mifare (NXP) の上位に位置する国際規格

12年3月17日土曜日

Page 8: 3.17 第1回nfc勉強会

NFCって何?よく聞くRFID (radio frequency identifier) との関係

自動認識技術とデータ収集技術の標準化

RFID

目的:物の管理例:コインの中  回転寿司の皿  本の包装の裏

カードおよび個人識別に関する技術の標準化

非接触ICカード

目的:人の管理例:交通系

   電子マネー 

12年3月17日土曜日

Page 9: 3.17 第1回nfc勉強会

NFCって何?非接触ICカードの規格

NFCIP-2( ISO/IEC 21481 )

NFCIP-1( ISO/IEC 18092 )

ISO/IEC 14443Type B

ISO/IEC 18092Type A ( MIFARE )

ISO/IEC 18092Type F ( FeliCa )

ISO/IEC 15693 = ISO/IEC 18000-3 Model 1

RFID

12年3月17日土曜日

Page 10: 3.17 第1回nfc勉強会

NFCの特徴って?

12年3月17日土曜日

Page 11: 3.17 第1回nfc勉強会

特徴は?

使い方は、”かざす”だけ。

ICカード規格 ( FeliCa, Mifare ) に依存しない通信が可能。

形状を自由に変えられる。

12年3月17日土曜日

Page 12: 3.17 第1回nfc勉強会

身近にあるの?

12年3月17日土曜日

Page 13: 3.17 第1回nfc勉強会

身近にある?リーダー・ライタ

おサイフケータイ

コンビニレジ横の箱

改札

(かざす系の)入退室管理、勤怠管理12年3月17日土曜日

Page 14: 3.17 第1回nfc勉強会

身近にある?

NFC ( IC ) カード

PASMO, Suica, ICOCA, TOICA, ICa, IruCa, RapiCa, passca, Hareca, LuLuCa, monoca, nimoca, Kitaca, SAPICA, SUGOCA, Ecomyca, manaca, ですか, など...

12年3月17日土曜日

Page 15: 3.17 第1回nfc勉強会

Ca ばっかりじゃ (ry

12年3月17日土曜日

Page 16: 3.17 第1回nfc勉強会

身近にある?NFC ( IC ) カード

WAON, nanaco, Edy

免許証

タスポ

住民基本台帳カード

12年3月17日土曜日

Page 17: 3.17 第1回nfc勉強会

NFCって誰が決めてるの?

12年3月17日土曜日

Page 18: 3.17 第1回nfc勉強会

誰が決めてるか?NFC Forum

設立

Sony, NXP

メンバー企業

Microsoft, Google, docomo, KDDI, Samusung, NOKIA, etc

12年3月17日土曜日

Page 19: 3.17 第1回nfc勉強会

NFCのカードとかって電池が入ってるんでしょ?

12年3月17日土曜日

Page 20: 3.17 第1回nfc勉強会

仕組みは?

電池は不要

寿命は半永久

12年3月17日土曜日

Page 21: 3.17 第1回nfc勉強会

仕組みは?

電磁誘導方式

モーター回す原理とか

リニアモーターカーが浮く原理とか

12年3月17日土曜日

Page 23: 3.17 第1回nfc勉強会

※テクニカルレビューより

12年3月17日土曜日

Page 24: 3.17 第1回nfc勉強会

結局どのスマートフォンが対応してるの?

12年3月17日土曜日

Page 25: 3.17 第1回nfc勉強会

対応スマフォは?

Android端末(国内)

Galaxy S2, Galaxy Nexus

BlackBerry端末(国内)

BlackBerry Bold 9900

12年3月17日土曜日

Page 26: 3.17 第1回nfc勉強会

普及すると何かいいことあるの?

12年3月17日土曜日

Page 27: 3.17 第1回nfc勉強会

何が出来るか?高齢者向けサービスに活用(フィンランド)

例)音声連携

HearMeFeelMe

12年3月17日土曜日

Page 28: 3.17 第1回nfc勉強会

何が出来るか?

チェックインの簡略化

例)Foursquare

12年3月17日土曜日

Page 29: 3.17 第1回nfc勉強会

何が出来るか?

ゲームのインターフェースへの活用

例)Wii U

12年3月17日土曜日

Page 30: 3.17 第1回nfc勉強会

とりあえず NFCDemo ?

12年3月17日土曜日

Page 31: 3.17 第1回nfc勉強会

NFCDemo

NFCDemoのソース群

12年3月17日土曜日

Page 32: 3.17 第1回nfc勉強会

NFCDemo

Tag読み取り処理The Tag Dispatch System

Android-powered devices are usually looking for NFC tags when the screen is unlocked, unless NFC is disabled in the device's Settings menu. When an Android-powered device discovers an NFC tag, the desired behavior is to have the most appropriate activity handle the intent without asking the user what application to use. Because devices scan NFC tags at a very short range, it is likely that making users manually select an activity would force them to move the device away from the tag and break the connection. You should develop your activity to only handle the NFC tags that your activity cares about to prevent the Activity Chooser from appearing.

To help you with this goal, Android provides a special tag dispatch system that analyzes scanned NFC tags, parses them, and tries to locate applications that are interested in the scanned data. It does this by:

1. Parsing the NFC tag and figuring out the MIME type or a URI that identifies the data payload in the tag.

2. Encapsulating the MIME type or URI and the payload into an intent. These first two steps are described in How NFC tags are mapped to MIME types and URIs.

3. Starts an activity based on the intent. This is described in How NFC Tags are Dispatched to Applications.

Android Developersより

12年3月17日土曜日

Page 33: 3.17 第1回nfc勉強会

NFCDemo

Tag読み取り処理タグ ディスパッチ システム

通常 Android 搭載デバイスは、NFC がデバイスの設定メニューで無効になっていない限りは、画面がロック解除された時に、NFC タグを見つけようとします。Android 搭載デバイスが NFC タグを発見すると、どのアプリケーションを使用するのかをユーザに尋ねることなく、もっとも適切なアクティビティにそのインテントをハンドルさせることがデバイスに期待される動作です。デバイスは NFC

タグをとても短い距離でスキャンすることから、ユーザが手動でアクティビティを選択すると、デバイスがタグから離れてしまい、接続が切れてしまうといったことになりかねません。開発者は、アクティビティの選択ダイアログが表示されないようにするためにも、アクティビティがケアする NFC タグをハンドルするだけにするように設計すべきです。

この目的を果たすために、スキャンされた NFC タグの解析、タグのパースおよび、スキャンされたデータを期待するアプリケーションへの検索の試みが Android により提供されています。これは以下のようにして実現されます。

1. NFC タグのパースとタグにあるデータ ペイロードを識別する MIME タイプや URI を解読します。2. MIME タイプや URI とペイロードをインテントにカプセル化します。これらの最初の 2 つのステップについては NFC タグの

MIME タイプと URI へのマッピング方式 で説明しています。3. インテントを基本としてアクティビティを開始します。これについては NFC タグの アプリケーションへのディスパッチ方式 で説明しています。

ソフトウェア技術ドキュメントを勝手に翻訳 より

12年3月17日土曜日

Page 34: 3.17 第1回nfc勉強会

NFCDemo

“AndroidManifest.xml”

<activity android:name="TagViewer" android:theme="@android:style/Theme.NoTitleBar" > <intent-filter> <action android:name="android.nfc.action.TAG_DISCOVERED"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>

12年3月17日土曜日

Page 35: 3.17 第1回nfc勉強会

NFCDemo

“TagView.java”

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tag_viewer); mTagContent = (LinearLayout) findViewById(R.id.list); mTitle = (TextView) findViewById(R.id.title); resolveIntent(getIntent()); }

12年3月17日土曜日

Page 36: 3.17 第1回nfc勉強会

NFCDemo

“TagViewer.java”

String action = intent.getAction(); if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(action)) { Parcelable[] rawMsgs =

intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); NdefMessage[] msgs; if (rawMsgs != null) { msgs = new NdefMessage[rawMsgs.length]; for (int i = 0; i < rawMsgs.length; i++) { msgs[i] = (NdefMessage) rawMsgs[i]; }

...

12年3月17日土曜日

Page 37: 3.17 第1回nfc勉強会

ご清聴ありがとうございました。

12年3月17日土曜日