170 likes | 269 Views
Mobil informatika gyakorlat. 3. óra: NDEF üzenet írása. Előszó: a Mifare tag-ek kapacitása. Mifare 1k 16 szektor, 4 blokk/szektor, 16 byte/blokk legelső blokk foglalt: UID, gyártó adatai szektoronként 1 blokk foglalt: A és B kulcs, hozzáférés beállításai, jogosultságok
E N D
Mobil informatika gyakorlat 3. óra: NDEF üzenet írása
Előszó: a Mifare tag-ek kapacitása • Mifare 1k • 16 szektor, 4 blokk/szektor, 16 byte/blokk • legelső blokk foglalt: UID, gyártó adatai • szektoronként 1 blokk foglalt: A és B kulcs, hozzáférés beállításai, jogosultságok • használható kapacitás tehát: 752 byte! • Mifare 4k • 32 db 4 blokkos és 8 db 16 blokkos szektor • használható kapacitás: 3440 byte nagy.gabriella@nik.uni-obuda.hu
Az NDEF üzenet szerkezete nagy.gabriella@nik.uni-obuda.hu
Az NDEF üzenet szerkezete nagy.gabriella@nik.uni-obuda.hu
NFC Forum típusok • NDEFRecordType.NFC_FORUM_RTD • Text: • urn:nfc:wkt:T • URI: • urn:nfc:wkt:U • Smart Poster: • urn:nfc:wkt:Sp nagy.gabriella@nik.uni-obuda.hu
MIME típusok • NDEFRecordType.MIME • text/plain • image/png • audio/mp3 • ... nagy.gabriella@nik.uni-obuda.hu
Egyéb típusok • EXTERNAL_RTD • pl.:urn:nfc:ext:nokia.com:bt • URI • RFC 3986 szerint • EMPTY • UNKNOWN nagy.gabriella@nik.uni-obuda.hu
Ismétlés • DiscoveryManager DiscoveryManager dm= DiscoveryManager.getInstance(); dm.addTargetListener(this, TargetType.NDEF_TAG); nagy.gabriella@nik.uni-obuda.hu
Ismétlés • Connection objektum létrehozása String url = tps[0].getUrl(Class.forName( "javax.microedition.contactless.ndef.NDEFTagConnection")); NDEFTagConnection conn = (NDEFTagConnection)Connector.open(url); nagy.gabriella@nik.uni-obuda.hu
NDEF üzenet összeállítása • Az üzenet típusa NDEFRecordType myType = new NDEFRecordType( NDEFRecordType.NFC_FORUM_RTD, "urn:nfc:wkt:T"); nagy.gabriella@nik.uni-obuda.hu
NDEF üzenet összeállítása • Rekord létrehozása NDEFRecord myRec = new NDEFRecord(myType, null, "Valami".getBytes( )); NDEFRecord[ ] records = new NDEFRecord[ ]{ myRec }; nagy.gabriella@nik.uni-obuda.hu
NDEF üzenet összeállítása • Üzenet létrehozása és írása NDEFMessage myMessage = new NDEFMessage(records); conn.writeNDEF(myMessage); nagy.gabriella@nik.uni-obuda.hu
NFC Forum URI • Az üzenet típusa NDEFRecordType myType = new NDEFRecordType( NDEFRecordType.NFC_FORUM_RTD, "urn:nfc:wkt:U"); nagy.gabriella@nik.uni-obuda.hu
NFC Forum URI • Rekord létrehozása byte[ ] headerByte = {0x00}; byte[ ] urlBytes = "http://www.garfield.com".getBytes(); NDEFRecord myRec = new NDEFRecord(myType, null, null); myRec.appendPayload(headerByte); myRec.appendPayload(urlBytes); nagy.gabriella@nik.uni-obuda.hu
Önálló feladat • Írjunk két rekordot (egy Text és egy URI típusút) egy címkére, majd ezeket olvassuk vissza és formázott módon jelenítsük meg (típus, tartalom). A rekordok tartalmát a felhasználó adja meg! nagy.gabriella@nik.uni-obuda.hu
Otthoni extra feladat #1 • Készíts olyan alkalmazást, amely tetszőleges rekordokból álló címkéket képes írni és olvasni! • Nokia NFC Manager Tag Editor-jához hasonlóan... • Esetleg bizonyos tartalomtípusokat funkciójuknak megfelelően... • Egyéni feladatmeghatározás, beszéljük meg! nagy.gabriella@nik.uni-obuda.hu
Kiegészítő anyagok • http://java.sun.com/developer/technicalArticles/javame/nfc/ • http://www.iana.org/assignments/media-types/ • http://wiki.openpcd.org/wiki/Mifare_Classic • http://en.wikipedia.org/wiki/MIFARE nagy.gabriella@nik.uni-obuda.hu