Slide 1

Slide 1 text

NFC جૅͷجૅ 12೥3݄17೔౔༵೔

Slide 2

Slide 2 text

ࣗݾ঺հ Լ઒ ܟ߂ʢ32ࡀʣ twitter ID: androhi ࣗ୐: Ἒ৓ݝਫށࢢ ۈ຿஍: ౦ژ౎৽॓۠ 12೥3݄17೔౔༵೔

Slide 3

Slide 3 text

೔ຊAndroidͷձ ίχϡχςΟӡӦҕһ Ἒ৓ࢧ෦ ࢧ෦௕ 12೥3݄17೔౔༵೔

Slide 4

Slide 4 text

ABC2012 Spring in ౦ژେֶ ԿؾʹΧϯϑΝϨϯε೤͍Ͱ͢ʂ Πϯςϧ͞Μͱ͔ɺFXI Technologies͞Μͱ͔ Έͳ͞Μɺདྷ͍ͯͩ͘͞ɻ 12೥3݄17೔౔༵೔

Slide 5

Slide 5 text

ABC2012 Spring in ౦ژେֶ ԿؾʹΧϯϑΝϨϯε೤͍Ͱ͢ʂ Πϯςϧ͞Μͱ͔ɺFXI Technologies͞Μͱ͔ Έͳ͞Μɺདྷ͍ͯͩ͘͞ɻ 12೥3݄17೔౔༵೔

Slide 6

Slide 6 text

ͦ΋ͦ΋NFCͬͯԿʁ 12೥3݄17೔౔༵೔

Slide 7

Slide 7 text

NFCͬͯԿʁ Near Field Communication ۙڑ཭ແઢ௨৴ Felica (SONY) ΍ Mifare (NXP) ͷ্ҐʹҐஔ͢Δࠃ ࡍن֨ 12೥3݄17೔౔༵೔

Slide 8

Slide 8 text

NFCͬͯԿʁ Α͘ฉ͘RFID (radio frequency identifier) ͱͷؔ܎ ࣗಈೝٕࣝज़ͱσʔλऩूٕज़ ͷඪ४Խ RFID ໨తɿ෺ͷ؅ཧ ྫɿίΠϯͷத ɹɹճసण࢘ͷࡼ ɹɹຊͷแ૷ͷཪ Χʔυ͓Αͼݸਓࣝผʹؔ͢Δ ٕज़ͷඪ४Խ ඇ઀৮ICΧʔυ ໨తɿਓͷ؅ཧ ྫɿަ௨ܥ ɹɹɹిࢠϚωʔɹ 12೥3݄17೔౔༵೔

Slide 9

Slide 9 text

NFCͬͯԿʁ ඇ઀৮ICΧʔυͷن֨ NFCIP-2 ( ISO/IEC 21481 ) NFCIP-1 ( ISO/IEC 18092 ) ISO/IEC 14443 Type B ISO/IEC 18092 Type A ( MIFARE ) ISO/IEC 18092 Type F ( FeliCa ) ISO/IEC 15693 = ISO/IEC 18000-3 Model 1 RFID 12೥3݄17೔౔༵೔

Slide 10

Slide 10 text

NFCͷಛ௃ͬͯʁ 12೥3݄17೔౔༵೔

Slide 11

Slide 11 text

ಛ௃͸ʁ ࢖͍ํ͸ɺ”͔͟͢”͚ͩɻ ICΧʔυن֨ ( FeliCa, Mifare ) ʹґଘ͠ͳ͍௨ ৴͕Մೳɻ ܗঢ়Λࣗ༝ʹม͑ΒΕΔɻ 12೥3݄17೔౔༵೔

Slide 12

Slide 12 text

਎ۙʹ͋Δͷʁ 12೥3݄17೔౔༵೔

Slide 13

Slide 13 text

਎ۙʹ͋Δʁ ϦʔμʔɾϥΠλ ͓αΠϑέʔλΠ ίϯϏχϨδԣͷശ վࡳ ʢ͔͟͢ܥͷʣೖୀࣨ؅ཧɺۈଵ؅ཧ 12೥3݄17೔౔༵೔

Slide 14

Slide 14 text

਎ۙʹ͋Δʁ NFC ( IC ) Χʔυ PASMO, Suica, ICOCA, TOICA, ICa, IruCa, RapiCa, passca, Hareca, LuLuCa, monoca, nimoca, Kitaca, SAPICA, SUGOCA, Ecomyca, manaca, Ͱ͔͢, ͳͲ... 12೥3݄17೔౔༵೔

Slide 15

Slide 15 text

Ca ͹͔ͬΓ͡Ό (ry 12೥3݄17೔౔༵೔

Slide 16

Slide 16 text

਎ۙʹ͋Δʁ NFC ( IC ) Χʔυ WAON, nanaco, Edy ໔ڐূ λεϙ ॅຽجຊ୆ாΧʔυ 12೥3݄17೔౔༵೔

Slide 17

Slide 17 text

NFCͬͯ୭͕ܾΊͯΔͷʁ 12೥3݄17೔౔༵೔

Slide 18

Slide 18 text

୭͕ܾΊͯΔ͔ʁ NFC Forum ઃཱ Sony, NXP ϝϯόʔاۀ Microsoft, Google, docomo, KDDI, Samusung, NOKIA, etc 12೥3݄17೔౔༵೔

Slide 19

Slide 19 text

NFCͷΧʔυͱ͔ͬͯి஑ ͕ೖͬͯΔΜͰ͠ΐʁ 12೥3݄17೔౔༵೔

Slide 20

Slide 20 text

࢓૊Έ͸ʁ ి஑͸ෆཁ ण໋͸൒Ӭٱ 12೥3݄17೔౔༵೔

Slide 21

Slide 21 text

࢓૊Έ͸ʁ ి࣓༠ಋํࣜ Ϟʔλʔճ͢ݪཧͱ͔ ϦχΞϞʔλʔΧʔ͕ු͘ݪཧͱ͔ 12೥3݄17೔౔༵೔

Slide 22

Slide 22 text

ి࣓༠ಋͷ࣮ݧ 12೥3݄17೔౔༵೔

Slide 23

Slide 23 text

※ςΫχΧϧϨϏϡʔΑΓ 12೥3݄17೔౔༵೔

Slide 24

Slide 24 text

݁ہͲͷεϚʔτϑΥϯ ͕ରԠͯ͠Δͷʁ 12೥3݄17೔౔༵೔

Slide 25

Slide 25 text

ରԠεϚϑΥ͸ʁ Android୺຤ʢࠃ಺ʣ Galaxy S2, Galaxy Nexus BlackBerry୺຤ʢࠃ಺ʣ BlackBerry Bold 9900 12೥3݄17೔౔༵೔

Slide 26

Slide 26 text

ීٴ͢ΔͱԿ͔͍͍͜ͱ ͋Δͷʁ 12೥3݄17೔౔༵೔

Slide 27

Slide 27 text

Կ͕ग़དྷΔ͔ʁ ߴྸऀ޲͚αʔϏ εʹ׆༻ʢϑΟϯ ϥϯυʣ ྫʣԻ੠࿈ܞ HearMeFeelMe 12೥3݄17೔౔༵೔

Slide 28

Slide 28 text

Կ͕ग़དྷΔ͔ʁ νΣοΫΠϯͷ؆ུԽ ྫʣFoursquare 12೥3݄17೔౔༵೔

Slide 29

Slide 29 text

Կ͕ग़དྷΔ͔ʁ ήʔϜͷΠϯλʔ ϑΣʔε΁ͷ׆༻ ྫʣWii U 12೥3݄17೔౔༵೔

Slide 30

Slide 30 text

ͱΓ͋͑ͣ NFCDemo ʁ 12೥3݄17೔౔༵೔

Slide 31

Slide 31 text

NFCDemo NFCDemoͷιʔε܈ 12೥3݄17೔౔༵೔

Slide 32

Slide 32 text

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೔౔༵೔

Slide 33

Slide 33 text

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೔౔༵೔

Slide 34

Slide 34 text

NFCDemo “AndroidManifest.xml” 12೥3݄17೔౔༵೔

Slide 35

Slide 35 text

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೔౔༵೔

Slide 36

Slide 36 text

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೔౔༵೔

Slide 37

Slide 37 text

͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ 12೥3݄17೔౔༵೔